Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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 shade插件在多模块项目中使用本地模块?_Java_Maven_Jar_Uberjar - Fatal编程技术网

Java 如何让maven shade插件在多模块项目中使用本地模块?

Java 如何让maven shade插件在多模块项目中使用本地模块?,java,maven,jar,uberjar,Java,Maven,Jar,Uberjar,我试图在一个多模块项目中使用maven shade插件生成一个uber jar,但没有成功。 版本:maven v3.9,maven shade v3.0 该项目如下所示: main |- library |- admin |- ... 子模块“admin”继承(依赖)子模块“library”,并包含maven shade插件定义。在构建过程中,插件似乎没有找到本地子模块“库”的POM 这些是POM main pom.xml <groupId>tapmeppe.server<

我试图在一个多模块项目中使用maven shade插件生成一个uber jar,但没有成功。
版本:maven v3.9,maven shade v3.0

该项目如下所示:

main
|- library
|- admin
|- ...
子模块“admin”继承(依赖)子模块“library”,并包含maven shade插件定义。在构建过程中,插件似乎没有找到本地子模块“库”的POM

这些是POM

main pom.xml
<groupId>tapmeppe.server</groupId>
<artifactId>tapmeppe-server</artifactId>
<version>2017.1</version>
<packaging>pom</packaging>
<modules>
    <module>library</module>
    <module>admin</module>
    <module>core</module>
</modules>
...


library pom.xml
<parent>
    <groupId>tapmeppe.server</groupId>
    <artifactId>tapmeppe-server</artifactId>
    <version>2017.1</version>
</parent>

<artifactId>tapmeppe-server-library</artifactId>

<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.38</version>
    </dependency>
    <dependency><!--jdbc driver-->
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>4.2.5.RELEASE</version>
    </dependency>
    <dependency><!--JSON parser-->
        <groupId>com.typesafe.play</groupId>
        <artifactId>play_2.11</artifactId>
        <version>2.5.2</version>
    </dependency>
</dependencies>


admin pom.xml
<parent>
    <groupId>tapmeppe.server</groupId>
    <artifactId>tapmeppe-server</artifactId>
    <version>2017.1</version>
</parent>

<artifactId>tapmeppe-server-admin</artifactId>

<dependencies>
    <dependency>
        <groupId>tapmeppe.server</groupId>
        <artifactId>tapmeppe-server-library</artifactId>
        <version>${project.version}</version>
    </dependency>
</dependencies>

<build>
    <finalName>admin-${project.version}</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.0</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <shadedArtifactAttached>true</shadedArtifactAttached>
                        <minimizeJar>true</minimizeJar>
                        <transformers>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <mainClass>tapmeppe.admin.Starter</mainClass>
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
[警告]POM用于 tapmeppe.server:tapmeppe服务器库:jar:2017.1缺失,否 可用的依赖项信息

[错误]无法在项目tapmeppe服务器上执行目标管理员:无法 不解析项目的依赖项 服务器:tapmeppe服务器管理员:jar:2017.1:查找失败 服务器:tapmepe服务器库:jar:2017.1 in 缓存在本地 在更新之前,不会重新尝试解析 中心间隔已过或强制更新->[帮助1]

出于某种原因,插件在远程存储库中寻找依赖项jar,而不是使用子模块。
我错过了什么?谢谢您的帮助。

没有shade插件,这能正常工作吗?您是从admin目录还是主目录运行maven?如果来自管理目录-库是否可用,安装在本地存储库中?由于以下答案,我最终解决了问题:
[INFO] Scanning for projects...
...
...
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException