永远不会结束Maven问题

时间:2017-07-18 11:00:21

标签: java spring maven

我继承了一个编写得很糟糕的Java / Spring项目。我使用Eclipse STS作为IDE。每当我试图建立另一台计算机进行开发时,我都会进入痛苦的世界。经过大量的修补和纠缠之后,我将问题缩小到一个重复出现的问题--Maven的存储库。

我已经在新计算机上用STS打开了这个项目。该项目不会构建,因为它声称一些Spring jar丢失或无效。该文件位于(.m2)目录中。删除它更新Maven依赖项下载文件的正确版本,错误消失。只有被另一个错误替换,关于另一个jar文件。

多次重复此过程后,我不再收到无效的jar文件错误。相反,我得到一个奇怪的错误,说assembly是一个无效的XML元素。

我完全删除了.m2文件夹,让Maven重新填充它,错误并没有消失。只有在我从另一台计算机(项目编译和工作)复制.m2文件夹后,问题才会消失。

Eclipse错误日志中没有与Maven相关的错误。我看到的只是“问题”窗格中的编译错误。

为什么Maven会继续下载损坏的JAR文件?我怎样才能每次都避免这个问题呢?

澄清:我们没有使用代理,我们在下载任何其他文件时都不会遇到任何网络问题。 Python的pip,节点npm,微软的nuget甚至bower都能完美无缺地工作,一天几次,有时甚至是项目同样大。这是Maven唯一的问题,还有很多机器。

其他信息: 我正在使用STS 3.9.0.RELEASE(基于Eclipse 4.6.3)。我使用的是STS嵌入式Maven,版本为3.3.9 / 1.7.0.20160603-1931(这是一个非常复杂的版本号,我不确定它的含义......)。

我没有〜/ .m2 / settings.xml文件(我删除了整个.m2目录)

以下是pom.xml中的存储库部分:

<repositories>

    <!-- For main Spring releases -->
    <repository>
        <id>org.springframework.maven.release</id>
        <name>Spring Maven Release Repository</name>
        <url>http://maven.springframework.org/release</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>

    <!-- For testing against latest Spring snapshots -->
    <repository>
        <id>org.springframework.maven.snapshot</id>
        <name>Spring Maven Snapshot Repository</name>
        <url>http://maven.springframework.org/snapshot</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>

    <!-- For developing against latest Spring milestones -->
    <repository>
        <id>org.springframework.maven.milestone</id>
        <name>Spring Maven Milestone Repository</name>
        <url>http://maven.springframework.org/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>

    <repository>
        <id>jboss</id>
        <name>JBoss repository</name>
        <url>https://repository.jboss.org/nexus/content/repositories/releases</url>
    </repository>


    <repository>
        <id>Servlet-api</id>
        <name>Servlet-api repository</name>
        <!-- <url>http://repo1.maven.org/maven2/javax/servlet/javax.servlet-api/3.0.1/</url> -->
        <url>http://search.maven.org/</url>
    </repository>


</repositories>

2 个答案:

答案 0 :(得分:0)

我已经安装了Maven 3.5.0并告诉Eclipse使用它。现在它似乎正在发挥作用。

答案 1 :(得分:-1)

也许你可以做的一件事就是阻止maven下载snaphot,或者在pom文件中明确定义你自信的jar文件版本。在存储库标记内,您可以添加快照标记。也许发布会更稳定。

argmax_prediction = tf.argmax(prediction, 1)
argmax_y = tf.argmax(y, 1)

TP = tf.count_nonzero(argmax_prediction * argmax_y, dtype=tf.float32)
TN = tf.count_nonzero((argmax_prediction - 1) * (argmax_y - 1), dtype=tf.float32)
FP = tf.count_nonzero(argmax_prediction * (argmax_y - 1), dtype=tf.float32)
FN = tf.count_nonzero((argmax_prediction - 1) * argmax_y, dtype=tf.float32)