使用Maven下载Spring 3.0.0依赖项

Gor*_*ran 7 java spring dependencies maven-2

我只是从.NET转换到JAVA,并且必须使用Spring 3.0.0启动JAVA项目.和Hibernate.

有人可以向我解释step_by_step如何使用Maven下载spring依赖项.我只花了一整天都没有成功.

PS.我有Java 1.5.06并且已经下载了spring(没有依赖项)并安装了Maven.

编辑:

c0mrade:

我认为从春季3.0.0开始.它们被认为是可选的依赖项,所以它们需要单独包含在每个依赖项中,这只是猜测我不确定这一点,如果Pascal或者更有经验的人确认我的语句然后它是真的,到目前为止我已经使用过春天2.5.5

是的......它们绝对是可选的,所以这就是我所做的.我只是将spring-orm pom文件中的hibernate依赖项复制/粘贴到myproject pom文件中,这意味着现在我在我的pom文件中定义了spring和hibernate依赖项.然后我在myproject上运行了"mvn install",之后只需将所有spring和hibernate jar复制到我项目的lib文件夹中.

所以现在我有一个带有spring和hibernate的Java项目.:)

我正在学习Java,这只是我的第二天所以所以请告诉我,如果我做了一些可怕的错误.

更新:

rlovtang:

使用maven时,不要手动下载任何依赖项(如spring),也不要将任何jar副本复制到项目lib文件夹中.当你运行'mvn install'时,所有这些都由maven自动完成.你如何打包你的应用程序,是战争吗?

我明白那个.我很清楚Ma​​ven会自动管理本地存储库中依赖项的类路径,这样我的项目就能在我的本地机器上正常工作.我还认为您可以选择在WAR或EAR中打包依赖项jar,但是如果我想将我的应用程序与JAR一起打包以及输出(目标)文件夹中的所有依赖项JAR,该怎么办?您看,我不想仅使用pom.xml部署我的JAR文件,而是部署应用程序运行所需的所有JAR.


它仍然不起作用:

这是我的pom.xml:

<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/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<dependencies>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring</artifactId>
        <version>3.0.0.</version>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

当我点击"mvn install"时,我得到了这个例外:

[INFO]扫描项目... [INFO] -------------------------------------- ---------------------------------- [ERROR]致命错误[INFO] -------- -------------------------------------------------- -------------- [INFO] null [INFO] ----------------------------- ------------------------------------------- [INFO] Trace java.lang Org.apache.maven.maven上的org.apache.artifact.version.DefaultArtersVersion.parseVersion(DefaultArtifactVersion.jav a:136)org.apache.maven.artifact.versioning.DefaultArtifactVersion.(DefaultArtifactVersion.java:47)的.NullPointerException. .artifact.version.VersionRange.createFromVersion(VersionRange.java:219)org.apache.maven.project.artifact.ProjectArtifactFactory.create(ProjectArtifactFactory.java:37)org.apache.maven.project.DefaultMavenProjectBuilder.processProjectLogic(DefaultMavenProjectBuilder) .:java:1017)org.apache.maven.project.project.DefaultMavenProjectBuilder.build内部(DefaultMavenProjectBuilder.java:8 80)org.apache.maven.project.Defa ulgMavenProjectBuilder.buildFromSourceFileInternal(DefaultMavenProject Builder.java:508)org.apache.maven.project.DefaultMavenProjectBuilder.build(DefaultMavenProjectBuilder.java:200)org.apache.maven.DefaultMaven.getProject(DefaultMaven.java:604)at org.位于org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:391)的apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:487)org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:272)at org org.apache.maven.cli.compatbleMain.main(兼容主页.java:60)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.在org.codehaus.classworlds.L的org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)调用(未知来源)auncher.launch(Launcher.java:255)org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)org.codehaus.classworlds.Launcher.main(Launcher.java:375)[INFO] --- -------------------------------------------------- ------------------- [INFO]总时间:<1秒[INFO]完成时间:2月18日星期四11:19:44 CET 2010 [INFO]最终记忆: 1M/2M [INFO] -------------------------------------------- ----------------------------

Pas*_*ent 12

实际上,你的POM是错误的,它缺少必要的部分.你至少需要这样的东西(这是一个最小的POM):

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mycompany.myproject</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>My App</name>
</project>
Run Code Online (Sandbox Code Playgroud)

要添加spring依赖项,我建议使用以下内容:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mycompany.myproject</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>My App</name>

  <properties>
    <org.springframework.version>3.0.0.RELEASE</org.springframework.version>
  </properties>

  <dependencies>

    <!--
        Core utilities used by other modules.
        Define this if you use Spring Utility APIs (org.springframework.core.*/org.springframework.util.*)
    -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>

  </dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)

有关Spring工件的完整列表,请查看使用Maven获取Spring 3工件并获取所需内容.

更新:仅供参考,有许多存储库搜索引擎可以帮助您查找工件.如果您不习惯Maven,这可能会有所帮助.另请注意,您可以获得一些IDE支持(Idea,Eclipse,NetBeans,我认为它们都提供了存储库搜索功能).实际上,在你的情况下,我建议使用SpringSource Tools Suite(STS),这是Eclipse的集成版本(捆绑一些插件用于Spring项目开发,包括Maven支持).STS是一个完全集成的环境,非常接近您在.NET世界IMO中可以获得的内容.你会喜欢的.

  • @Tim我已经完成了(因为我提供的链接正在使用这个属性,我更喜欢使用它,如果你需要它们的很多工件,这是一件好事). (2认同)