Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.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_Eclipse_Maven - Fatal编程技术网

Java 将依赖项从本地迁移到Maven

Java 将依赖项从本地迁移到Maven,java,eclipse,maven,Java,Eclipse,Maven,我有一个Java代码,其中我使用Maven和本地系统添加了JAR。现在,当我在另一个系统上运行它时,本地jar丢失了。如何将所有内容添加到Maven并删除本地类路径 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http:

我有一个Java代码,其中我使用Maven和本地系统添加了JAR。现在,当我在另一个系统上运行它时,本地jar丢失了。如何将所有内容添加到Maven并删除本地类路径

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.memeanalytics</groupId>
<artifactId>kafka-consumer-storm</artifactId>
<packaging>jar</packaging>
<version>1.1.0</version>
<name>HibernateExample</name>
<url>http://maven.apache.org</url>


<repositories>

    <repository>
        <id>github-releases</id>
        <url>http://oss.sonatype.org/content/repositories/github-releases/</url>
    </repository>

    <repository>
        <id>clojars</id>
        <url>http://clojars.org/repo</url>
    </repository>

    <repository>
        <id>cloudera-repo-releases</id>
        <url>https://repository.cloudera.com/artifactory/repo/</url>
    </repository>

</repositories>

<dependencies>

    <!-- <dependency> <groupId>net.wurstmeister.storm</groupId> <artifactId>storm-kafka-0.8-plus</artifactId> 
        <version>0.4.0</version> </dependency> -->

    <dependency>
        <groupId>org.xerial.snappy</groupId>
        <artifactId>snappy-java</artifactId>
        <version>1.1.1.3</version> <!-- was 1.1.0-M3 -->
    </dependency>

    <dependency>
        <groupId>org.apache.storm</groupId>
        <artifactId>storm-kafka</artifactId>
        <version>0.9.3</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>1.6</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <transformers>
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <mainClass>com.sd.dwh.kafka.storm.Invoker</mainClass>
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

4.0.0
com.memeanalytics
卡夫卡消费风暴
罐子
1.1.0
冬眠的例子
http://maven.apache.org
github发布
http://oss.sonatype.org/content/repositories/github-releases/
clojars
http://clojars.org/repo
cloudera回购协议发布
https://repository.cloudera.com/artifactory/repo/
org.xerial.snapy
轻快的java
1.1.1.3 
org.apache.storm
卡夫卡风暴
0.9.3
org.apache.maven.plugins
maven阴影插件
1.6
包裹
阴凉处
com.sd.dwh.kafka.storm.Invoker

最简单的修复方法是:
1.注意您手动添加到类路径中的所有JAR/依赖项(使用IDE或其他方式)
2.使用maven central search facilities()在公共存储库中定位这些依赖项(当然是一个接一个)。使用在线maven搜索得到的结果将包括那些依赖项的pom片段
(…)
。将它们复制并粘贴到现有pom.xml的dependencies部分。 3.删除基于IDE的类路径条目


当然,只有当这些依赖项位于公共存储库中时,这才有效。

我不知道您所说的“本地jar”是什么意思。如果您指的是Maven依赖项和手动将JAR添加到IDE中的混合,那么这是一个非常糟糕的主意。要么使用Maven,要么不使用。如果使用Maven,则所有内容都应该是Maven依赖项。将来,您需要将每个手动添加的JAR添加到本地存储库中,由Maven进行管理: 将其添加到本地存储库后,可以将其作为依赖项添加到pom.xml中,就像处理Maven central中的所有其他依赖项一样


如果您与其他人或其他计算机共享该项目,则会遇到您所谈论的问题。在团队中(或在本地网络中),您通常运行like。当存在手动添加(并安装到本地存储库)的新依赖项时,通常将其部署到Nexus,Nexus充当本地网络和Maven central之间的代理。然后,您的团队或本地网络中的每个人都可以找到这些依赖项。

您可以为您的本地开发设置一个maven repository manager,它可以代理maven central repository,并在其中部署您自己的库。当您需要在另一个环境中开发时,您可以从本地maven存储库获取依赖项。

您可以粘贴pom.xml吗?添加了。。。虽然我不确定这会有什么帮助,但上面哪些依赖项缺失了?这可能不是100%无误的答案。。。但肯定是我要找的那个。我正是这样做的,但不知怎么的,我忘记了删除预先存在的类路径。谢谢!:-)