如何创建从一个原型项目,当你压抑物业更换?
-
18-09-2019 - |
题
我想一个简单的项目中创建一个结构的项目,该项目包含了一些SSL证书,我想包括作为,所以当项目被创建的证书将是项目的一部分,在结构的项目资源。我的问题是Maven是试图创建一个与原型项目时做这些证书的属性更换。反正有告诉行家不要做财产更换? 我已经尝试了以下内容:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<excludes>
<exclude>**/*.xml</exclude>
</excludes>
</resource>
在我的原型的pom.xml。任何想法?
解决方案
我不知道你的问题到底是什么(是你的证书XML文件?),但我的猜测是,它是关系到大部分的原型的非二进制内容被创建时速度处理的事实(见 ARCHETYPE-90 了解这个问题)。
一个解决方法是配置创建 - 从项目魔力使用具有未过滤的文件默认:
-Darchetype.filteredExtentions=ext1,ext2,...
它设置扩展将被过滤,并且将默认值包括java
,xml
,txt
,vm
,groovy
,jsp
,gsp
,vm
和properties
文件。所以从这个列表中排除xml
如果你不想被过滤xml
做。
另一种选择是指定自定义元数据的原型,像这样在src/main/resources/META-INF/maven/archetype-metadata.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<archetype-descriptor name="myarchetype">
<fileSets>
<fileSet filtered="false" encoding="UTF-8">
<directory>src/foobar</directory>
<includes>
<include>**/*.xml</include>
</includes>
</fileSet>
</fileSets>
</archetype-descriptor>
请参阅更多此页上原型的元数据的信息。
其他提示
我也有类似的问题,试图用$ {BASEDIR}在原型资源/ pom.xml的,但它被替换时的原型跑到创建工程等指出错误的目录。
的修复程序是简单的。只要使用\ $ {BASEDIR}代替。这逃脱$符号,并防止行家从替换它在运行时原型。然后您生成的pom.xml文件将包含$ {BASEDIR},而不是该原型从跑目录。
不隶属于 StackOverflow