我创建了带有过滤器的简单ear项目。我想对每个环境使用不同的设置,这些设置应该传递给生成的应用程序。xml文件,格式为env条目。使用maven ear插件生成ear包,如下所示:
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<version>2.9</version>
<configuration>
<generateApplicationXml>true</generateApplicationXml>
<version>6</version>
<envEntries>
<env-entry>
<env-entry-name>customProperty</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>${custom.property}</env-entry-value>
</env-entry>
</envEntries>
<applicationName>${custom.property}</applicationName>
</configuration>
</plugin>
为此,我必须使用另一个插件属性-maven-plugin。它成功地从文件中读取属性并将它们设置为maven项目属性,因此我可以使用${}
将它们插入pom.xml文件中。它适用于大多数pom.xml元素(即
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" version="6">
<application-name>default property</application-name>
<display-name>test</display-name>
<env-entry>
<env-entry-name>customProperty</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>${custom.property}</env-entry-value>
</env-entry>
</application>
这可能是一个应该在Maven Ear Plugin发布的错误,但我在那里没有帐户。我还附加了存档的maven项目,如果有人想自己检查的话:test.zip.
我使用maven资源插件和过滤器应用程序成功地解决了这个问题。xml
文件创建为user@skegg99后。由于我无法替换这个文件,我不得不将它复制到META-INF目录。我知道我看起来不漂亮,但现在情况已经解决了。以下是maven资源插件的附加标记:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<configuration>
<outputDirectory>${basedir}/target/${project.artifactId}-${project.version}/META-INF</outputDirectory>
<filters>
<filter>src/main/filters/${env}.properties</filter>
</filters>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
还有这里:
<resources>
<resource>
<directory>${basedir}/target</directory>
<filtering>true</filtering>
<includes>
<include>application.xml</include>
</includes>
</resource>
</resources>
整个项目配置可以从这里下载。
使用当前的设置,这很可能是不可能的。
我只是简单地看了一下代码,其中指出env条目是通过PlexusConfiguration加载的。
如果不深入研究该代码,我看不出这部分处理的条目比“读取XML,放入列表”更特殊。
问题内容: 在redis中,我将对象存储在一个排序集中。在我的解决方案中,能够按日期运行范围内的查询很重要,因此我存储的项目的得分为每个项目的时间戳,例如: 但是,在其他情况下,我需要根据其ID在集合中找到一个项目。我知道我不能像对待nosql db那样仅查询此数据结构,但是我尝试使用,这是行不通的。 它返回;“空列表或集” 也许我需要序列化不同吗?我已经使用Json.Net进行了序列化。 我如何
我正在从ModelMapper到MapStruct的转换过程中,到目前为止一切都很顺利,除了在列表上排序和筛选的情况,如果我有一个从域对象到实体的映射,例如: 从一个api中,我想在contactAddressLine1上进行过滤或排序,然后我想查找源代码(或反向映射时的目标代码),以便将其添加到动态jpq或sql查询中。 有没有办法用MapSTRt做到这一点? 使用ModelMapper,我可以
在这种情况下,我必须读取某个属性文件,然后调用一个外部程序。 > 为了读取属性文件,我使用了属性Maven插件,在验证阶段使用 为了执行外部程序,我使用execmaven插件,调用goal 但是,如果我调用“mvn exec:exec”,则不会调用验证阶段,因此不会读取属性。 在我当前的场景中,我无法将exec:exec与任何特定的阶段联系起来(这是因为所有其他阶段都有非常具体的作业要处理,而我尝
现在,在这个src文件夹中,我想在多个子文件夹上运行声纳配置文件,并排除一些第三方src文件夹。有人能帮我做这个吗?现在,sonar在上面的任何一个文件夹子文件夹中运行所有src的配置文件?
我想部署一个库到我公司的远程存储库。 这是我第一次想将库项目部署到远程存储库。 我收到以下错误消息: org.sonatype.aether.transfer.artifactNotFoundException:找不到工件com.http: httpkit: jar: 0.0.1internal.repo(http://jenkins.internal.com/) 也许我理解了一些完全错误的地方,
Project 对象提供了一些标准的属性,您可以在构建脚本中很方便的使用他们. 下面列出了常用的属性: Name Type Default Value project Project Project 实例对象 name String 项目目录的名称 path String 项目的绝对路径 description String 项目描述 projectDir File 包含构建脚本的目录 build