Файлы ресурсов Maven, поместите файлы классов Java и файлы свойств в один каталог - PullRequest
6 голосов
/ 11 июня 2011

У меня есть файлы классов Java и файлы свойств в одном каталоге.

SRC / главная / Java / COM / берлин / Test.class

SRC / главная / Java / COM / берлин / Test.properties

С помощью созданного мной кувшина maven и цели maven я хочу, чтобы они появлялись в одном каталоге. но maven помещает файлы классов и файлы свойств в разные места, когда я делаю 'mvn package'.

.. Выход: jar -tvf file.jar:

Сб 11 июня 08:24:32 ПО ВОСТОЧНОМУ ВРЕМЕНИ 2011 main / java / com / berlin / Test.properties

Я хочу: Сб 11 июня 08:24:32 ПО ВОСТОЧНОМУ ВРЕМЕНИ 2011 com / berlin / Test.properties Сб 11 июня 08:24:32 ПО ВОСТОЧНОМУ ВРЕМЕНИ 2011 com / berlin / Test.class

...

Часть моего пом:

<build>
        <finalName>${project.artifactId}</finalName>
        <sourceDirectory>src</sourceDirectory>
        <testSourceDirectory>test</testSourceDirectory>
        <resources>
            <resource>
                <directory>src</directory>
                <includes>
                    <include>**</include>
                </includes>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
        </resources>
<plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.source.version}</source>
                    <target>${java.target.version}</target>
                </configuration>
            </plugin>           
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>            
        </plugins>

Ответы [ 3 ]

12 голосов
/ 11 июня 2011

По причинам Maven вы должны поместить файл свойств в каталог src / main / resources, а не в каталог src / main / java (сохраняя ту же структуру подпапок).

При этом, чтобы получить то, что вы хотите, вам нужно заменить (в вашем pom.xml) src на src/main/java. Не проверено, но если у вас есть проблемы, пожалуйста, поделитесь.

1 голос
/ 11 июня 2011

Сначала вы должны поместить свои ресурсы в src / main / resources / com / berlin / Test.properties, а исходные файлы java в src / main / java / com / berlin / Test.java ... Никогда не помещайте скомпилированные классы src / folder ... более того, вы должны удалить конфигурацию:

  <finalName>${project.artifactId}</finalName>
  <sourceDirectory>src</sourceDirectory>
  <testSourceDirectory>test</testSourceDirectory>
  <resources>
        <resource>
            <directory>src</directory>
            <includes>
                <include>**</include>
            </includes>
            <excludes>
                <exclude>**/*.java</exclude>
            </excludes>
        </resource>
    </resources>

от вашего pom, потому что вам это не нужно, и, кроме того, это неправильно (Соглашение о конфигурации парадигмы!). Взгляните на макет папки по умолчанию в maven.

Путь Maven - поместить исходные файлы (* .java) в src / main / java, ресурсы src / main / resources. Классы модульных тестов src / test / java и src / test / resources после компиляции будут помещены в target / классы или для целей target / test-classes.

0 голосов
/ 14 февраля 2016
<build>
    <testResources>
        <testResource>
            <directory>src/test/resources</directory>
        </testResource>
        <testResource>
            <directory>src/test/java</directory>
            <excludes>
                <exclude>**/*.java</exclude>
            </excludes>
        </testResource>
    </testResources>
</build>
...