Maven:如何根据子模块是否包含文件来激活配置文件?
我在Mac10.9.1上使用Maven 3.1.1。我想根据某些子模块是否包含文件来激活配置文件。我试过以下方法Maven:如何根据子模块是否包含文件来激活配置文件?,maven,profile,file-exists,activation,Maven,Profile,File Exists,Activation,我在Mac10.9.1上使用Maven 3.1.1。我想根据某些子模块是否包含文件来激活配置文件。我试过以下方法 <profile> <id>deploy-war-to-jboss</id> <activation> <file> <exists>${session.executionRootDirectory}/src/main
<profile>
<id>deploy-war-to-jboss</id>
<activation>
<file>
<exists>${session.executionRootDirectory}/src/main/webapp/WEB-INF/web.xml</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.jboss.as.plugins</groupId>
<artifactId>jboss-as-maven-plugin</artifactId>
<version>${jboss.maven.plugin.version}</version>
<configuration>
<hostname>${jboss.remote.hostname}</hostname>
<port>${jboss.remote.port}</port>
</configuration>
<executions>
<execution>
<id>deploy-to-jboss</id>
<phase>install</phase>
<goals>
<goal>deploy</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
将战争部署到jboss
${session.executionRootDirectory}/src/main/webapp/WEB-INF/WEB.xml
org.jboss.as.plugins
jboss作为maven插件
${jboss.maven.plugin.version}
${jboss.remote.hostname}
${jboss.remote.port}
部署到jboss
安装
部署
但是当运行“mvm clean install”时,这个配置文件并没有被激活,尽管我已经验证了所讨论的子模块包含这个文件。我还尝试了${project.basedir},但运气不好。你知道我是如何做到这一点的吗?既然你在父POM中定义了配置文件(我想),你应该试试这个
${basedir}/name-of-your-child-module//src/main/webapp/WEB-INF/web.xml
此外,您应该尝试在运行时获取更多信息:
mvm -X clean install
我有几个满足条件的子模块。我想在我的配置文件中说的是,如果子模块有一个“web.xml”文件,请运行配置文件,否则不要运行它。所以我尽量避免硬编码。这有意义吗?如果概要文件位于父POM中,并且所有子模块POM都从中继承,那么您应该能够使用
${project.basedir}/src/main/webapp/WEB-INF/WEB.xml
,因为${project.basedir}
是针对相应的子模块进行计算的。