在Maven项目中包含xml文件 [英] Include xml files in maven project

查看:229
本文介绍了在Maven项目中包含xml文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个maven pom文件可以通过以下结构构建:

I have a maven pom file to build from a structure like:

package1
--1.java
--2.java
--packageMetaInfo.xml

package1
--1.java
--2.java
--packageMetaInfo.xml

package2
--21.java
--22.java
--packageMetaInfo.xml

package2
--21.java
--22.java
--packageMetaInfo.xml

当我执行Maven编译时,xml文件不在目标中.
maven-compiler-plugin 3.5.1-除非我通过<exclusions>排除xml,否则将收到错误消息致命错误编译:所有编译单元必须为SOURCE类型->" maven-compiler-plugin 2.0.1-编译但跳过xmls

When I do a maven compile, the xml files don't come in the target.
maven-compiler-plugin 3.5.1 - Unless I exclude the xmls through <exclusions>, I get an error that "Fatal error compiling: All compilation units must be of SOURCE kind ->" maven-compiler-plugin 2.0.1 - compiles but skips the xmls

有没有一种方法可以将XML包含在我的jar中.结构应该是

Is there a way I can have the xmls included in my jar. The structure would be

x.jar
   package1
  -1.class
  -2.class
   --packageMetaInfo.xml

x.jar
  package1
  --1.class
  --2.class
  --packageMetaInfo.xml

  package2
  -21.class
  -22.class
  -packageMetaInfo.xml

  package2
  --21.class
  --22.class
  --packageMetaInfo.xml

*我知道在源文件中包含xml可能不是maven的标准,但是我正在开发特定产品,因此需要在输入和输出中都保持这种结构.

*I understand it may not be maven standard to have xml with source files but I am working on a specific product and need to maintain this structure in both input and output.

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <groupId>com.incent</groupId>
  <artifactId>Release-4.3.0.1.0.0001</artifactId>
  <name>AAA Custom code</name>
  <version>2.4.0.1</version>  

  <properties>
        <ormb.cmccb.path>./Active_Repository/CMCCB</ormb.cmccb.path>
        <ormb.customcode.path>${ormb.cmccb.path}/data</ormb.customcode.path>
        <ormb.release.name>AAA-4.3.0.1.0.0001</ormb.release.name>
        <ormb.target.path>./target</ormb.target.path>
        <ormb.output.path>Release-${ormb.release.name}/Application/${ormb.release.name}/CMCCB</ormb.output.path>
        <ormb.serverfile.output.relpath>./target/server</ormb.serverfile.output.relpath>    
    <build.number>SNAPSHOT</build.number>
  </properties>



 <dependencies>

    <dependency>
    <groupId>org.ow2.asm</groupId>
    <artifactId>asm</artifactId>
    <version>5.0.3</version>
</dependency>

    <dependency>
        <groupId>antlr</groupId>
        <artifactId>antlr</artifactId>
        <version>2.7.7</version>
        <type>jar</type>
    </dependency>
    <dependency>
        <groupId>icu4j</groupId>
        <artifactId>icu4j</artifactId>
        <version>49.1</version>
        <type>jar</type>
    </dependency>
    <dependency>
        <groupId>dom4j</groupId>
        <artifactId>dom4j</artifactId>
        <version>1.6.1</version>
        <type>jar</type>
    </dependency>
    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.2</version>
        <type>jar</type>
    </dependency>
    <dependency>
        <groupId>wlfullclient</groupId>
        <artifactId>wlfullclient</artifactId>
        <version>10.3.4.0</version>
        <type>jar</type>
    </dependency>
    </dependencies>


  <build>

    <sourceDirectory>${ormb.customcode.path}/java</sourceDirectory>  

    <plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.6</version>
        <configuration>
            <encoding>UTF-8</encoding>
        </configuration>
        <executions>
           <execution>
            <id>copy-cm</id>
            <phase>install</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>${ormb.customcode.path}/etc/lib</outputDirectory>
                <overwrite>true</overwrite>
                <resources>
                    <resource>
                        <directory>${ormb.target.path}</directory>
                        <includes>
                            <include>cm.jar</include>
                        </includes>
                    </resource>
                </resources>
            </configuration>
            </execution>
            <execution>
                <id>copy-mwpackage</id>
                <phase>install</phase>
                <goals>
                    <goal>copy-resources</goal>
                </goals>
                <configuration>
                    <outputDirectory>${ormb.serverfile.output.relpath}</outputDirectory>
                <overwrite>true</overwrite>
                <resources>
                    <resource>
                        <directory>${ormb.target.path}</directory>
                        <includes>
                            <include>Release-${ormb.release.name}.zip</include>
                        </includes>
                    </resource>
                </resources>
            </configuration>
            </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
            <encoding>ISO-8859-1</encoding> 
            <source>1.7</source>
            <target>1.7</target>
          <includes>
            <include>**/cm/**</include> 
          </includes>
          <excludes>
            <exclude>**/*.xml</exclude>
          </excludes>
        <resources>
            <resource>
            <directory>${ormb.customcode.path}/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
            </resource>
        </resources>


        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.6</version>
         <executions>
         <execution>
            <id>create-cm</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
            <configuration>
                <appendAssemblyId>false</appendAssemblyId>
                <descriptors>
                    <descriptor>Active_Repository/assembly/executable.xml</descriptor>
                </descriptors>
                <finalName>cm</finalName>
                 <manifest>
                    <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                </manifest>
                <archive>
                    <manifestEntries>
                        <Specification-Title>${project.name}</Specification-Title>
                        <Specification-Version>${project.version}</Specification-Version>
                        <Implementation-Version>${build.number}</Implementation-Version>
                    </manifestEntries>
                </archive>
            </configuration>
            </execution>
            <execution>
            <id>create-distro</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <descriptors>
                <descriptor>Active_Repository/assembly/dist.xml</descriptor>
              </descriptors>
              <finalName>custom-action-dist</finalName>
              <appendAssemblyId>false</appendAssemblyId>
              <finalName>Release-${ormb.release.name}</finalName>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>

推荐答案

我遇到了同样的问题,我想保留fxml&同一文件夹中的Java文件(我使用的是SceneBuilder,该人需要在同一位置同时使用fxml和Java文件).

I faced the same issue, I wanted to keep fxml & java files in the same folder (I'm using scenebuilder who needs both fxml and java files at the same place).

这是我在pom.xml中的解决方案:

Here is my solution in pom.xml:

<resources>
    <resource>
        <directory>src/main/resources</directory>
    </resource>
    <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.fxml</include>
        </includes>
  </resource>        
</resources>    

这篇关于在Maven项目中包含xml文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆