作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将创建一个多模块原型(prototype)。它将生成几个模块。原型(prototype)的一些用户可能需要所有这些,而一些用户只需要其中一些。
我的原型(prototype)可以从命令行获取参数并决定生成哪些模块吗?我查了https://maven.apache.org/archetype/archetype-models/archetype-descriptor/archetype-descriptor.html它似乎不支持这一点。
最佳答案
在这种特定情况下,原型(prototype)总是可以创建所有需要的模块并将不同的风格(模块集)移动到配置文件中。在 archetype:generate
中指定的默认情况下,只有一个配置文件处于事件状态。步。
因此,如果我想拥有一组 flavorA 的模块,我将运行原型(prototype)为
mvn archetype:generate -DarchetypeGroupId=.. -DflavorA=true
activeByDefault
重新定义
modules
的 flavorA 配置文件的元素flavorA 用户所需的一组模块的元素。
<profiles>
<profile>
<id>flavourA</id>
<activation>
<activeByDefault>${flavourA}</activeByDefault>
</activation>
<modules>
<module>profiled-module2</module>
<module>profiled-module3</module>
</modules>
</profile>
<profile>
<id>flavourB</id>
<activation>
<activeByDefault>${flavourB}</activeByDefault>
</activation>
<modules>
<module>profiled-module3</module>
</modules>
</profile>
<profile>
<id>flavourC</id>
<activation>
<activeByDefault>${flavourC}</activeByDefault>
</activation>
<modules>
<module>profiles-module1</module>
<module>profiled-module2</module>
<module>profiled-module3</module>
</modules>
</profile>
</profiles>
archetype-metadata.xml
然后文件可以指定:
<requiredProperties>
<requiredProperty key="flavourA">
<defaultValue>false</defaultValue>
</requiredProperty>
<requiredProperty key="flavourB">
<defaultValue>false</defaultValue>
</requiredProperty>
<requiredProperty key="flavourC">
<defaultValue>false</defaultValue>
</requiredProperty>
</requiredProperties>
-DflavorB=true
调用的原型(prototype)然后选项将生成一个 pom,如下所示:
<profiles>
<profile>
<id>flavourA</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<modules>
<module>profiled-module2</module>
<module>profiled-module3</module>
</modules>
</profile>
<profile>
<id>flavourB</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<modules>
<module>profiled-module3</module>
</modules>
</profile>
<profile>
<id>flavourC</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<modules>
<module>profiles-module1</module>
<module>profiled-module2</module>
<module>profiled-module3</module>
</modules>
</profile>
</profiles>
maven clean
)时,将删除任何不需要的模块.这种方法虽然会使 POM 的配置文件不一致,但也可以考虑(不推荐)。
<profile>
<id>flavourA</id>
<activation>
<activeByDefault>${flavorA}</activeByDefault>
</activation>
<modules>
<module>profiled-module2</module>
<module>profiled-module3</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<filesets>
<fileset>
<directory>${basedir}/profiled-module1</directory>
</fileset>
</filesets>
</configuration>
</plugin>
</plugins>
</build>
</profile>
关于maven - 可以将多模块 Maven 原型(prototype)设置为具有可选模块吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34735040/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!