Java “需要一个好的”;“家”;Maven构建期间web应用程序的目录
我有一个JavaWeb应用程序,它使用JNDI来确定它的“主”目录,在那里发生各种配置文件和日志记录。在Maven构建期间,我们在settings.xml中的属性中设置主目录位置。在Maven构建资源筛选过程中,该属性又被放入Jetty/Tomcat JNDI文件中。一切都很好 然而,这种设置要求一台机器上一次只能进行一次Maven构建,这对于我们的Hudson CI服务器来说很快就会成为一个问题。它还要求用户在构建之前创建此目录,这有助于破坏构建的可移植性。理想情况下,我可以通过在父POM中定义一个变量,将父POM项目的“target”目录用作“home”目录:Java “需要一个好的”;“家”;Maven构建期间web应用程序的目录,java,build-process,build-automation,maven,temporary-directory,Java,Build Process,Build Automation,Maven,Temporary Directory,我有一个JavaWeb应用程序,它使用JNDI来确定它的“主”目录,在那里发生各种配置文件和日志记录。在Maven构建期间,我们在settings.xml中的属性中设置主目录位置。在Maven构建资源筛选过程中,该属性又被放入Jetty/Tomcat JNDI文件中。一切都很好 然而,这种设置要求一台机器上一次只能进行一次Maven构建,这对于我们的Hudson CI服务器来说很快就会成为一个问题。它还要求用户在构建之前创建此目录,这有助于破坏构建的可移植性。理想情况下,我可以通过在父POM中定
${project.basedir}/target
但这不起作用,因为每个Maven模块都将webapphome
重新定义为不同的东西。我不知道为什么。如果我能解决那个问题,我会准备好的
否则,我可以使用什么作为一个好的临时“home”或“working”目录,它是构建所特有的,并且在构建中的所有Maven模块中都是常量?另外一个问题是:如果目录不存在,我可以让Maven为我创建目录吗?我们使用一个全局“out”目录作为webapp home,每个项目都有子文件夹
<properties>
<root.dir>${basedir}/..</root.dir>
<output.dir>${root.dir}/out</output.dir>
<output.wardir>${output.dir}/wars</output.wardir>
</properties>
...
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webappDirectory>
${output.wardir}/exploded/${project.artifactId}
</webappDirectory>
</configuration>
</plugin>
${basedir}/。。
${root.dir}/out
${output.dir}/wars
...
maven战争插件
${output.wardir}/exploded/${project.artifactId}
是否在每个模块POM中定义root.dir
属性?或者100%的模块比父pom低一级?我们有一个嵌套POM的目录。。。还是个好主意…@HDave-这些定义都在根pom中。然后我们有一个继承自它的servlet容器pom,以及继承它的实际servlet容器。它一路工作下去……这些继承的Maven项目都指向同一个目录?嗯……为什么对我不起作用?将重试…@HDave-是的,一个全局输出目录。