2015-06-20 95 views
1

我是一位.NET开发人员,他认为mono对我的项目来说太麻烦了,不适合。所以我开始学习Java ......如何在Java中引用外部库?

我现在面临的一个问题是不知道如何添加对外部库的引用。就像你在.NET中添加对dll的引用一样。

我意识到这可能会因IDE而异...我现在使用Eclipse。

我也想知道Java/Eclipse是否有像NuGet for .NET一样的包管理器?

在此先感谢。

+0

您需要学习JNI ... –

+0

太棒了......谢谢我现在就看看这个! –

+0

看看http://stackoverflow.com/questions/2824515/how-to-add-external-library-properly-in-eclipse – SSH

回答

2

使用maven

它类似于(和我的意见更好)的NuGet。 它是基于一个公共仓库,而你管理一个XML文件

你(类似.NET项目)的每个项目的引用将有pom.xml文件,该文件将是这样的:

<project> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.mycompany.app</groupId> 
    <artifactId>my-module</artifactId> 
    <version>1</version> 
</project> 

而在这个文件中,你管理引用(又名依赖)

举例来说,如果你想添加这个依赖 - http://mvnrepository.com/artifact/org.apache.commons/commons-lang3/3.4

,您将需要修改pom.xml像这样:

<project> 
    ... 
    <dependencies> 

    <dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-lang3</artifactId> 
     <version>3.4</version> 
    </dependency> 

    </dependencies> 
    ... 
</project> 

,这就是它(可能是eclipse插件会替你查字典,你将被设置)

一件事...

Iv'e也.net约1.5年前搬到java,我可以诚实地建议您使用intellij idea,而不是日食

  • 完全支持行家,需要0配置
  • 最好的学习曲线(这从字面上问你从哪个IDE,你来自和适应的键盘快捷键!)
  • 根本真棒
+0

使用Maven!这比NuGet多一点工作,但它非常棒! –

3

使用Gradle

Gradle比Maven轻得多,而且非常灵活。实际上,配置文件是Groovy代码!没有详细的XML,您可以添加自定义功能等。我用它来创建一个大型的网络应用程序,并且从Maven(我以前曾经广泛使用过)开发时间很短。它使用Maven存储库获取依赖关系,并且可以在多语言项目中使用,以防您曾想过这样做。Gradle也是Android的默认构建工具。

下面是一个例子配置(从this粘贴,未经测试!):

apply plugin: 'java' 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2' 
    testCompile group: 'junit', name: 'junit', version: '4.+' 
} 

如果您使用的是Eclipse,只需添加一行apply plugin: 'eclipse'在顶部和摇篮会产生Eclipse项目文件与Eclipse完美结合(我多年没有使用过Eclipse,但是我相信也有Eclipse插件可以监视Gradle文件的变化并在运行中更新Eclipse配置)。如果您决定切换,Gradle还与IntelliJ集成。

+0

Grazie Mille Giovanni,我真的很喜欢Gradle的声音,但是现在我要去看看Maven,因为英国的工作网站现在对Maven有更多的合同职责。不过,我一定会考虑下一个Gradle,因为我认为它可以在不久的将来取代Maven。 –

+0

老实说,我很惊讶,任何人仍然使用Maven。 XML配置是一个噩梦,它非常不灵活。无论如何,一旦你理解了Maven概念,稍后将Maven项目迁移到Gradle很容易(我不能说相反)。 –

+0

我已经把Java放下了一段时间,专注于C++。我正在制作一个多核心爱好项目,它将使用C++作为核心(用于性能)。我想使用Java来托管一个Web服务,它将报告C++应用程序的状态。当我重访时,我会看看Maven和Gradle。 –