当前位置: 首页 > 知识库问答 >
问题:

模糊依赖于战争的项目

东郭凯捷
2023-03-14

我想使用ProGuard(项目a)混淆项目(jar)。然而,这个项目依赖于另一个war(项目B),并且使用了我在B中开发的一些类。我使用了这个问题的解决方案:从依赖于其他项目的maven项目构建一个jar,但它不起作用,当我在项目a上使用命令maven clean install-X时,我得到了错误:

error: cannot find symbol

error: package com.example does not exist

我怎样才能把这个罐子弄糊涂?

编辑1

在项目A的POM中,我有:

>

<dependency>
    <groupId>com.example</groupId>
    <artifactId>myWarProject</artifactId>
    <version>1.0.0-BUILD-SNAPSHOT</version>
</dependency>

内置部分:

   <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>shade</goal>
                </goals>
                <configuration>
                    <finalName>DeviceListener</finalName>
                    <transformers>
                        <transformer
                            implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                            <manifestEntries>
                                <Main-Class>com.example.main.Main</Main-Class>
                                <Build-Number>1</Build-Number>
                            </manifestEntries>
                        </transformer>
                    </transformers>
                </configuration>
            </execution>
        </executions>
    </plugin>

在项目B中,我有:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.2.0</version>
            <configuration>
                <attachClasses>true</attachClasses>
            </configuration>
        </plugin>

共有1个答案

山疏珂
2023-03-14

我的意思是创建war项目中的类的jar,如下所示:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.0.0</version>
            <configuration>
                <attachClasses>true</attachClasses>
                <archiveClasses>true</archiveClasses>
            </configuration>
        </plugin>
    </plugins>
</build>

这将产生一个补充jar文件,其中包含war项目的类,这些类可以用作依赖项(不要忘记定义分类器)...

您需要像这样更改依赖关系:

xml prettyprint-override"><dependency>
    <groupId>com.example</groupId>
    <artifactId>myWarProject</artifactId>
    <version>1.0.0-BUILD-SNAPSHOT</version>
    <classifier>classes</classifier>
</dependency>
 类似资料:
  • 我有一个SpringBootWeb项目,它依赖于maven overlay war文件,这也是SpringWeb项目。pom中包含战争。xml。 我如何部署战争与Spring Boot应用程序,以便我可以使用属于战争文件的Restendpoint。我试图从STS启动应用程序,只需将其作为Java应用程序运行。当应用程序启动时,我只能看到属于Spring Boot项目的URL,但属于war文件的UR

  • 我有一个由gradle建造的战争项目。我有一个字符串gradle.build文件:编译'log4j: log4j: 1.2.17'但没有任何log4j.jar结果WEB-INF/lib目录在myproject.war文件。 但“compile”配置中定义的所有其他lib都存在。为什么会有如此奇怪的行为,它是一个bug还是某种功能?如何将其包含在我的网络档案中? Eclipse在项目的“网络应用程序

  • 虽然应用程序启动良好,到目前为止没有检测到功能丢失,但由于多个(主要是重复的)错误,测试无法运行,例如: [..] com类型的依赖项不明确。fasterxml。杰克逊。数据绑定。ObjectMapper和限定符[@Named(value=“objMapper”)]-java成员:com。项目。存储库。MyDao#()-在类bean[types=[com.proj.repository.MyEla

  • 问题内容: 我已经在互联网上搜索了很长一段时间,但无法弄清楚如何配置Maven-war插件或类似的东西,以便系统依赖项包含在内置战争中(WEB-INF / lib文件夹) 在jar-build的情况下,我使用maven依赖插件: 但是我不明白在打仗的情况下该怎么办。我试过使用maven-war插件,但是在构建中不包括系统依赖项。 [更新] 我有以下类型的行为: 在我的POM中,构建战争时,这些依赖

  • 我有一个jar文件集合,其依赖关系为菱形模式:               /           \ Dep1.JAR ;     Dep2.JAR                         /                 我想用ProGuard对它们进行模糊处理,以保留它们的依赖关系,例如,这样base.jar和dep2.jar的模糊版本就可以单独执行,而不需要dep1.jar和de

  • 问题内容: 可以运行以了解模块任务的依赖性。有没有办法找到 buildscript依赖 的 传递依赖 ? 示例: 直接取决于: 可以在MVNRepository上看到。但是,这些工件有其自己的依赖性。有没有找到方法而无需手动遍历整个依赖树的方法? 为了澄清起见,我正在谈论的类路径由以下方式定义: 问题答案: 您可以使用以下命令: Udacity提供了很棒的Android Gradle 教程,但是您