Как создать определенную папку в Maven? - PullRequest
1 голос
/ 12 марта 2012

У меня есть папка myApp1, и pom.xml лежит внутри myApp1. Вот найди мой myApp1

myAppl1
  |--src
       |--main
             |--java 
               (Java Source Code)
             |--resources
               some xml files and doc files 
  |--pom.xml

Теперь, если я сделаю пакет mvn, он создаст все папки и создаст JAR-файлы (в основном он также помещает все файлы в папку ресурсов в файле JAR).

То, что я хочу, - это создавать файлы только в папке java, которая не имеет никакой зависимости от папки ресурсов (зависимости файлов java упоминаются в файле POM, который является jars в репозитории).

Я не уверен, как мы можем создать определенную папку в Maven. Я попытался установить mvn -pl src \ main \ java -am, но пишет, что не может найти выбранный проект в реакторе?

РЕДАКТИРОВАТЬ Вот как я поместил его в pom.xml до

<pluginManagement>
   <plugins>
<plugin> 
        <artifactId>maven-jar-plugin</artifactId> 
        <version>${maven-jar-plugin.version}</version> 
        <configuration> 
            <verbose>true</verbose> 
            <excludes> 
                <exclude>resources/*</exclude> 
                <exclude>webapp/*</exclude>                     
            </excludes> 
        </configuration> 
</plugin> 
</plugins>
 </pluginManagement>

Но я получаю [ОШИБКА] Неверно сформированный POM C: \ myProject \ pom.xml: Нераспознанный тег: 'pluginMana gement '(позиция: START_TAG видел ... \ r \ n \ r \ n ... @ 55: 21) @ C: \ myProject \ pom.xml, строка 55, столбец 21 -> [Справка 2]

Ответы [ 4 ]

2 голосов
/ 12 марта 2012

Вы должны поместить объявление maven-jar-plugin в раздел , а не в .

2 голосов
/ 13 марта 2012

Это будет ответ типа "не делай этого".

Maven ожидает, что ресурсы будут файлами, которые должны оказаться в вашем артефакте, для этого и нужны ресурсы. Если у вас есть другие файлы, они действительно должны быть помещены в другое место.

Сказав это, можно запутать всех, кто ожидает традиционного поведения, и сказать maven, что файлы в src / main / resources на самом деле не являются ресурсами.

Для этого, скажем, в разделе сборки POM

<resources>
  <resource>
    <directory>src/main/resources</directory>
    <excludes>
      <exclude>**/*</exclude>
    </excludes>
  </resource>
</resources>    

Копирование ресурсов обрабатывается плагином maven resources , поэтому его документацию стоит посмотреть на проблему, связанную с ресурсами.

2 голосов
/ 12 марта 2012

Вы должны использовать maven-jar-plugin и настроить его так, чтобы исключить файлы или каталоги, которые вы не хотите включать в свой JAR. Кроме того, проверьте использование на сайте Maven. Ниже приведен пример конфигурации для maven-jar-plugin:

    <build>
    ...
    <plugins>
    ...
        <plugin>
            <artifactId>maven-jar-plugin</artifactId>
            <version>${maven-jar-plugin.version}</version>
            <configuration>
                <verbose>true</verbose>
                <excludes>
                    <exclude>properties</exclude>
                    <exclude>properties/*</exclude>
                    <exclude>spring</exclude>
                    <exclude>spring/*</exclude>
                    <exclude>logback.xml</exclude>
                </excludes>
            </configuration>
        </plugin>
     ...
     </plugins>
     ...
     </build>
1 голос
/ 30 января 2013

для файлов, которые не следует копировать в файл артефакта, вы можете использовать каталог проектов src / main / config, который также выполняет соглашения по именованию maven.

в моем особом случае я использую этот каталог для хранения бинарных источников, таких как файлы .exe, также. которые заархивированы плагином сборки и развернуты в моем хранилище как zip и bin, которые хорошо работают и выглядят как чистый рабочий процесс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...