代码之家  ›  专栏  ›  技术社区  ›  Hakanai

我可以阻止javac从第三方jar的清单访问类路径吗?

  •  6
  • Hakanai  · 技术社区  · 15 年前

    1. 随着jar文件被重命名,我们现在每次编译时都会收到大量警告(可以用 -Xlint:-path )
    2. 在构建过程中需要额外的时间来查找所有这些额外的jar,这是因为我们实际上不需要这些东西的解析。

    所以我想知道是否有人知道禁用这个的魔法。假设Sun没有给我们带来另一个我们不想要的功能,一旦我们拥有它就不能关闭。

    2 回复  |  直到 15 年前
        1
  •  2
  •   Derek    15 年前

    <target name="util-modify-manifest" depends="build-classpath">
    <for param="file">
        <fileset dir="${jars}" >
            <include name="**/*.jar" />
        </fileset>
        <sequential>
            <jar jarfile="@{file}" destfile="@{file}" update="true">
                <manifest>
                    <attribute name="Class-Path" value="" />
                    <attribute name="Export-Package" value="" />
                </manifest>
            </jar>
            <echo message="Manifest Replaced: @{file}" />
        </sequential>
    </for>
    

        2
  •  1
  •   bmargulies    15 年前

    用bnd或shade去除有问题的部分舱单.MF从jars输入,而不是仅仅重命名。或者利用这些路径名本质上从来不是绝对的这一点。如果你移动一个叫“我有一个”的罐子-类路径.jar'到它自己的子目录中,清单类路径条目将无法在预期位置找到这些其他jar。不过,我想如果你打开足够的棉绒,那还是会发出呜呜声的。