Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.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工件,我可以拥有什么?如何使用它?_Java_Maven_Build - Fatal编程技术网

Java 作为Maven工件,我可以拥有什么?如何使用它?

Java 作为Maven工件,我可以拥有什么?如何使用它?,java,maven,build,Java,Maven,Build,我知道这似乎是一个已经被问过的问题,但我还没有找到一个对我有很大帮助的答案 我读过很多次,每个项目最好生成一个工件。但我的问题是:作为Maven工件,我能拥有什么 例如:我有一个带有自定义生命周期的自定义包装“MyPack”,我可以将整个目录“Mydirectory”作为人工制品吗 假设目录的结构如下所示: 我的目录 -----|--罐子 -----|-----|---client.jar -----|-----|---server.jar -----|--JSP -----|-----|---

我知道这似乎是一个已经被问过的问题,但我还没有找到一个对我有很大帮助的答案

我读过很多次,每个项目最好生成一个工件。但我的问题是:作为Maven工件,我能拥有什么

例如:我有一个带有自定义生命周期的自定义包装“MyPack”,我可以将整个目录“Mydirectory”作为人工制品吗

假设目录的结构如下所示:

我的目录
-----|--罐子
-----|-----|---client.jar
-----|-----|---server.jar
-----|--JSP
-----|-----|---页面1.jsp
-----|-----|---页面2.jsp
-----|--imgs
-----|-----|---img1.png
-----|-----|---img2.png

然后,我想创建一个新项目,该项目具有打包“MyPack”和类型为“MyPack”的依赖项。在这个项目中,我的Java类需要编译Maven存储库中的client.jar和server.jar,我想在我的新项目中复制存储库中的所有JSP和IMG


我可以用一个定制的Maven插件完成所有这些吗?

你可以选择任何作为Maven工件的东西作为Maven工件。 使用以下命令生成工件:

    <build>
       <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <descriptors>
                    <descriptor>${basedir}/src/main/assembly/shared.xml</descriptor>
                </descriptors>
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
     ....
      </plugins> 
     ....
  </build>      
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
<id>shared</id>
<formats>
    <format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
    <fileSet>
        <outputDirectory>/</outputDirectory>                            
        <directory>${basedir}/.....</directory>
        <includes>
            <include> ... </include>
        </includes>
        <fileMode>0644</fileMode>
        <filtered>false</filtered>
        <lineEnding>unix</lineEnding>
    </fileSet>
  </fileSets>
</assembly>

org.apache.maven.plugins

目标是“解包依赖项”

感谢您的回答@esalagea。在使用“解包依赖项”目标之后,我应该使用具有“系统”作用域的依赖项将jars client.jar和server.jar添加到新项目的类路径中,还是有其他解决方案?