Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java maven发布后如何在application.xml中自动更新版本_Java_Xml_Maven_Ear_Snapshot - Fatal编程技术网

Java maven发布后如何在application.xml中自动更新版本

Java maven发布后如何在application.xml中自动更新版本,java,xml,maven,ear,snapshot,Java,Xml,Maven,Ear,Snapshot,application.xml文件: <?xml version="1.0" encoding="UTF-8"?> <application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/

application.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" version="6">
  <description>DESCRIPTION</description>
  <display-name>xxxsystem-ear</display-name>
  <module>
    <ejb>xxxsystem-ejb-3.1.1-SNAPSHOT.jar</ejb>
  </module>
  <module>
    <web>
      <web-uri>xxxsystem-web-3.1.1-SNAPSHOT.war</web-uri>
      <context-root>/xxxsystem</context-root>
    </web>
  </module>
  <library-directory>lib</library-directory>
</application>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ear-plugin</artifactId>
            <configuration>
                <filtering>true</filtering>
                <version>6</version>
                <defaultLibBundleDir>lib</defaultLibBundleDir>
                <modules>
                    <ejbModule>
                        <groupId>${project.groupId}</groupId>
                        <artifactId>xxxsystem-ejb</artifactId>
                    </ejbModule>
                    <webModule>
                        <groupId>${project.groupId}</groupId>
                        <artifactId>xxxsystem-web</artifactId>
                        <contextRoot>/xxxsystem</contextRoot>
                    </webModule>
                </modules>
            </configuration>
        </plugin>

描述
XXX系统耳
xxxsystem-ejb-3.1.1-SNAPSHOT.jar
xxxsystem-web-3.1.1-SNAPSHOT.war
/XXX系统
解放党
在我跑步之后: mvn版本:干净 mvn发布:准备 mvn发布:执行

因此,我必须手动将xml文件中的.jar和.war版本更改为3.1.2

有一种方法可以告诉maven为我更改此文件中的版本吗?

我必须对jboss-deployment-structure.xml做同样的事情

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
    <deployment>
        <exclusions>
            <module name="org.apache.log4j" />
        </exclusions>
    </deployment>

    <sub-deployment name="xxx-ejb-3.1.1-SNAPSHOT.jar">
        <exclusions>
            <module name="org.apache.log4j" />
        </exclusions>
    </sub-deployment>

    <sub-deployment name="xxx-web-3.1.1-SNAPSHOT.war">
        <exclusions>
            <module name="org.apache.log4j" />
        </exclusions>
    </sub-deployment>
</jboss-deployment-structure>


有什么想法吗?

为什么不能简单地使用maven资源插件?


如果正确配置文件,则需要使用${project.version}及其“done”

一个好方法是让maven负责生成application.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" version="6">
  <description>DESCRIPTION</description>
  <display-name>xxxsystem-ear</display-name>
  <module>
    <ejb>xxxsystem-ejb-3.1.1-SNAPSHOT.jar</ejb>
  </module>
  <module>
    <web>
      <web-uri>xxxsystem-web-3.1.1-SNAPSHOT.war</web-uri>
      <context-root>/xxxsystem</context-root>
    </web>
  </module>
  <library-directory>lib</library-directory>
</application>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ear-plugin</artifactId>
            <configuration>
                <filtering>true</filtering>
                <version>6</version>
                <defaultLibBundleDir>lib</defaultLibBundleDir>
                <modules>
                    <ejbModule>
                        <groupId>${project.groupId}</groupId>
                        <artifactId>xxxsystem-ejb</artifactId>
                    </ejbModule>
                    <webModule>
                        <groupId>${project.groupId}</groupId>
                        <artifactId>xxxsystem-web</artifactId>
                        <contextRoot>/xxxsystem</contextRoot>
                    </webModule>
                </modules>
            </configuration>
        </plugin>

org.apache.maven.plugins
在插件中启用(如上所示),其源代码修改为:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
    <deployment>
        <exclusions>
            <module name="org.apache.log4j" />
        </exclusions>
    </deployment>

    <sub-deployment name="xxxsystem-ejb-${project.version}.jar">
        <exclusions>
            <module name="org.apache.log4j" />
        </exclusions>
    </sub-deployment>

    <sub-deployment name="xxxsystem-web-${project.version}.war">
        <exclusions>
            <module name="org.apache.log4j" />
        </exclusions>
    </sub-deployment>
</jboss-deployment-structure>

或者,您可以通过以下方式生成具有无版本嵌入式模块的EAR:


org.apache.maven.plugins
maven耳朵插件
6.
解放党
${project.groupId}
XXX系统ejb

xxxsystem-ejb.jar您是否手动编写application.xml?(我想是的.)为什么不让maven-ear插件生成application.xml呢?@khmarbaise成功了,谢谢你的帮助。现在我必须对jboss-deployment-structure.xml做同样的事情,您知道如何做吗?为什么不将org.apache.log4j设置到不同模块中提供的范围中,这将导致不将该文件打包到生成的war、ear文件中。