我已经为我的Maven项目添加了分析.
<profile>
<id>da</id>
</profile>
<profile>
<id>live</id>
</profile>
<profile>
<id>dev</id>
</profile>
Run Code Online (Sandbox Code Playgroud)
当我在mvn clean install不指定构建配置文件的情况下发出命令时.我需要默认构建开发配置文件.
我怎样才能做到这一点?
我有两个不同环境的配置文件pom.xml,我必须运行mvn -PTest1 install并mvn -PTest2 install命令使用这些配置文件.我们可以将两个单独的maven命令集成在一个(如mvn clean install)吗?
这是我的Pom条目
<profiles>
<profile>
<id>Test1</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.5</jdk>
<os>
<name>Windows XP</name>
<family>Windows</family>
<arch>x86</arch>
<version>5.1.2600</version>
</os>
<property>
<name>sparrow-type</name>
<value>African</value>
</property>
</activation>
<dependencies>
<dependency>
<groupId>
com.endeca
</groupId>
<artifactId>
endeca_navigation_Test1
</artifactId>
<version>
6.1
</version>
<!--<version>stable</version> -->
<scope>
compile
</scope>
</dependency>
</profile>
<profile>
<id>Test2</id>
<activation>
<activeByDefault>false</activeByDefault>
<jdk>1.5</jdk>
<os>
<name>Windows XP</name>
<family>Windows</family>
<arch>x86</arch>
<version>5.1.2600</version>
</os>
<property>
<name>sparrow-type</name>
<value>African</value>
</property>
</activation>
<dependencies>
<dependency>
<groupId>
com.endeca
</groupId>
<artifactId>
endeca_navigation_Test2
</artifactId>
<version>
6.1
</version> …Run Code Online (Sandbox Code Playgroud) 我有多个项目加载到我的项目结构中,他们都使用不同的maven配置文件.我知道我可以使用Maven Projects选项卡切换配置文件,但我想指定一个特定的配置文件以配合特定的运行配置.
mvn help:active-profiles仅列出在项目中激活的配置文件+您调用它的系统设置.
它不会列出已启用/激活的配置文件,即父pom.
有什么方法可以通过其他方式实际查看激活的配置文件的完整列表,而不是试错,以查看是否启用了哪些属性?
问题与Maven有关:如果未激活配置文件B,则仅激活配置文件A?,但它更具体.
如果我输入以下内容之一:
mvn clean install -PspecificProfile
mvn clean install -Dsmth -PspecificProfile
mvn clean install -Dsmth -PspecificProfile,anotherProfile
Run Code Online (Sandbox Code Playgroud)
然后我想激活specificProfile个人资料.(+其他指定的配置文件)
如果我输入其他类似的东西:
mvn install
mvn clean install
mvn clean install -Dsmth
mvn clean install -Dsmth -PanotherProfile
mvn clean install -Dsmth -PdefaultProfile
mvn clean install -Dsmth -PdefaultProfile,anotherProfile
Run Code Online (Sandbox Code Playgroud)
然后我想激活defaultProfile(+其他指定的配置文件).
if ( specific profile P is used via command line ) {
activate P;
} else {
activate the default profile;
}
activate other specified profiles; …Run Code Online (Sandbox Code Playgroud) Maven允许基于其运行的操作系统系列激活某些构建配置文件,例如:
<profile>
<activation>
<os><family>Windows</family></os>
</activation>
</profile>
Run Code Online (Sandbox Code Playgroud)
围绕这个问题有很多问题:当时允许的值是os.family多少?他们是否区分大小写?Linux会遇到Unix吗?还是unix?等等.
我在哪里可以找到有关允许值的信息 - 或者至少Maven从哪里获取这些值?环境变量?
我想仅在特定配置文件处于活动状态时才使用代理.为了实现这一点,我的猜测是参数<active>化<proxy>元素的属性.但是,我不确定如何实现这一目标.
问题:如何仅在特定配置文件处于活动状态时才使用代理?
我参考了" Maven:The Complete Reference ",特别是有关<properties...在<profile...标签中使用标签的配置文件的部分:请参阅此处
<profile>
<id>development</id>
<activation>
<activeByDefault>true</activeByDefault>
<property>
<name>environment.type</name>
<value>dev</value>
</property>
</activation>
<properties>
<database.driverClassName>com.mysql.jdbc.Driver</database.driverClassName>
<database.url>
jdbc:mysql://localhost:3306/app_dev
</database.url>
<database.user>development_user</database.user>
<database.password>development_password</database.password>
</properties>
</profile>
Run Code Online (Sandbox Code Playgroud)
我不确定的mvn install -Denvironment.type=dev是运行命令时会发生什么:
.properties文件吗?我需要能够使用在JUnit测试运行期间激活的配置文件.我想知道是否有办法做某事:
String str = System.getProperty("activated.profile[0]");
Run Code Online (Sandbox Code Playgroud)
或任何其他相对方式......
我意识到有一个选项,以${project.profiles[0].id}某种方式使用它不起作用.
有任何想法吗?