use*_*920 4 java layout maven-2
我试图将一个项目转换为一个maven ...它的.java文件位于/ src/main/java之外的其他位置,当我运行maven install时,所有文件(.hbm,.xml)除了那些.class发生在我的罐子里.
这是pom.xml的构建部分:
<build>
<resources>
<resource>
<directory>${basedir}/src</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<fork>true</fork>
<compilerVersion>1.5</compilerVersion>
<compilerArguments>
<encoding>UTF-8</encoding>
</compilerArguments>
</configuration>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,我的jar中缺少.class文件...并且控制台上没有显示错误消息,是否需要将它们移动到/ src/main/java包结构?
还有,这种行为可能是什么原因,一些缺少依赖性?
我做了一个改变,将它们移动到src/main/java,我在控制台上得到了一些例外,但如果我"必须"将它们添加到这个"src/main/java"结构中,我仍然感到困惑......
请给我一个关于这个的想法......
谢谢
您可以将源目录配置为与以下资源相同:
<build>
<sourceDirectory>${basedir}/src</sourceDirectory>
<resources>
<resource>
<directory>${basedir}/src</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
</build>
Run Code Online (Sandbox Code Playgroud)
它不是绝对必要的 - 它是可配置的 - 但Maven带有标准化的项目布局,强烈建议接受它,就像其他Maven惯例一样(不要与Maven对抗,采用它).
我知道您正在从Ant迁移到Maven,但是您在IMO上并没有走上正确的道路,因此弯曲Maven使其适合您现有的项目结构/工作流程并不是推荐的方法:
src/main/java
,target/classes
等),不喜欢改变默认设置.推荐的方法是将现有结构转换为maven兼容的模块化结构,并采用标准的Maven布局.
采用Maven标准和惯例只会让您的Maven生活更加轻松,并且您可以获得标准化的结构,Maven非常重视.
我认为有足够的人写了类似的建议,所以我不会坚持更多.但你应该听听这些建议(而不是坚持尝试让Maven适合你现有的结构),特别是因为你是Maven的新手.从我的角度来看,你不是从Ant迁移到Maven,而是试图将Maven迁移到Ant构建.