如何将pom.xml文件与简单的Java项目一起使用

时间:2015-03-18 11:55:56

标签: java maven pom.xml

我在Eclipse中创建了一个简单的Java项目,并在根文件夹中创建了一个pom.xml文件。现在我想通过执行pom.xml文件来下载所有Spring Framework依赖项。

是否可以在不在Maven项目中的简单Java项目中使用pom.xml文件并下载所有Spring Framework依赖项?

我右键单击了pom.xml文件并以“Maven install”

运行 在控制台上我找到了这个。

[INFO] Scanning for projects...
[INFO] 
[INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1

    [INFO]  


[INFO] ------------------------------------------------------------------------
[INFO] Building my-app 1
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ my-app ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /home/oodles/Documents/MyWorkspace/MySpringProjectMaven/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ my-app ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ my-app ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /home/oodles/Documents/MyWorkspace/MySpringProjectMaven/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ my-app ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ my-app ---
[INFO] No tests to run.
[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ my-app ---
[WARNING] JAR will be empty - no content was marked for inclusion!
[INFO] Building jar: /home/oodles/Documents/MyWorkspace/MySpringProjectMaven/target/my-app-1.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ my-app ---
[INFO] Installing /home/oodles/Documents/MyWorkspace/MySpringProjectMaven/target/my-app-1.jar to /home/oodles/.m2/repository/com/qasim/app/my-app/1/my-app-1.jar
[INFO] Installing /home/oodles/Documents/MyWorkspace/MySpringProjectMaven/pom.xml to /home/oodles/.m2/repository/com/qasim/app/my-app/1/my-app-1.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.013 s
[INFO] Finished at: 2015-03-18T23:32:49+05:30
[INFO] Final Memory: 8M/150M
[INFO] ------------------------------------------------------------------------

我无法理解点击Maven安装后会发生什么。一些文件夹使用my-app.jar创建了命名目标文件夹,我添加了这个jar来构建路径。但我认为它不起作用。我有以下代码的Test类:

package com.qasim.app;


public class Test {
      public static void main(String[] args) {
          ApplicationContext context = new ClassPathXmlApplicationContext("MySpringConfig.xml");

          Restaurant obj = (Restaurant) context.getBean("restaurantBean");
          obj.greetCustomer();
       }
}

和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>
  <groupId>com.qasim.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1</version>
    <dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>3.0.5.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>3.0.5.RELEASE</version>
</dependency>

</dependencies>
</project>

但是在Test类编译器抱怨应用程序上下文行“create class named applicationContext”如果在运行“Maven install”命令后下载了依赖项,那么它应该为应用程序上下文显示一些“Import hint”

1 个答案:

答案 0 :(得分:1)

<强>更新 一个建议开始:我真的建议查阅这里找到的官方文档http://maven.apache.org/guides/index.html - 花时间阅读以下几点&#34;介绍&#34;因为它会解释你如何使用Maven以及它是如何工作的;)

我复制并粘贴了你的pom.xml并且可以编译你的Java类(我删除了Restaurant引用,只是为Spring配置创建了一个空文件)。

查看构建输出:

[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ my-app ---
[INFO] No sources to compile

Maven告诉你它没有编译任何来源 - 这强烈暗示你没有使用正确的标准Maven文件夹结构。

我只是使用您的pom.xml和Maven标准文件夹结构设置了一个迷你项目,如下所示:

enter image description here (注意:由于公司安全限制,我必须删除路径,因为我在办公室内写作)

如果您在src/main/java下设置了课程,并将您的配置放在src/main/resources下,Maven将能够找到该课程并进行编译,同时它还将获取您的资源并将其放入您的jar中。在我的情况下,我刚刚创建了一个空文件MySpringConfig.xml,显然在尝试加载ApplicationContext时无法工作,但是您可以在下面的堆栈跟踪中看到文件本身可以找到并加载(但在解析时)空的内容不满足SAX解析器 - 我打赌你的看起来更好:)。

尝试一下,不要忘记咨询maven参考,因为我没有深入到文件夹结构等;)

是的 - 您应该可以右键单击pom.xml,选择run AS,例如选择Maven install(对应mvn install)或定义要处理的阶段在Maven build...

或者,您应该能够为Maven创建新的启动配置,并将Base directory:指向pom.xml所在的位置。

注意:Afaik你需要在Eclipse中安装M2-Plugin才能使用Maven(我不知道很多关于这个有趣的工具,但我在这里有一个Eclipse Juno能够构建一个在#34内手动创建的Maven项目;简单的java应用程序&#34;项目)。

注意:如果您只需要依赖项并使用Maven作为&#34;帮助程序&#34;要下载它们,您始终可以从大多数远程存储库手动下载Jar,例如:http://mvnrepository.com/search?q=spring