【问题标题】:Spring Tool Suite- referencing projectsSpring Tool Suite - 引用项目
【发布时间】:2019-04-16 09:04:34
【问题描述】:

我来自 C#\Visual Studio 背景,不知道如何从项目 A 中引用项目 B,这样当我进行 Maven 构建时,它实际上会构建。使用 Spring Tool Suite:

  1. 在项目 A,属性> Java 构建路径 > 项目中,我添加了项目 B。
  2. 项目 B 通过 Maven 构建,就像一个包一样好。
  3. 可爱的智能感知工作,我正在愉快地编写代码。
  4. 我在项目 A 上做一个 Maven 构建并得到一大堆 [ERROR]: ...package [project B] does not exist.

我知道我需要让 Maven 知道项目 B 的 jar ......但我不明白这是如何工作的。我不认为我想将 jar 强制放入我的本地 Maven 存储库(如果我这样做,那么当我使用公司的 maven 存储库时会发生什么?),我真的只想让 maven 从项目 B 中获取 .class 文件建立并走在我快乐的路上。我错过了什么?

编辑:添加 poms:

<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.firm</groupId>
  <artifactId>projectA</artifactId>
  <packaging>jar</packaging>
  <version>0.0.2-SNAPSHOT</version>
   <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
    </parent>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                <executable>true</executable>
                </configuration>

            </plugin>
    </plugins>
  </build>
   <repositories>
        <repository>
            <id>spring-releases</id>
            <url>https://repo.spring.io/libs-release</url>
        </repository>
    </repositories>
  <dependencies>
<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20090211</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.13</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.jayway.jsonpath</groupId>
            <artifactId>json-path</artifactId>
            <scope>test</scope>
        </dependency>
</dependencies>
</project>

POM 2:

<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.firm</groupId>
  <artifactId>projectB</artifactId>
  <packaging>jar</packaging>
  <version>0.0.1-SNAPSHOT</version>
   <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
    </parent>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>

    </plugins>
  </build>
   <repositories>
        <repository>
            <id>spring-releases</id>
            <url>https://repo.spring.io/libs-release</url>
        </repository>
    </repositories>
  <dependencies>
<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20090211</version>
</dependency>

<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.ldap</groupId>
            <artifactId>spring-ldap-core</artifactId>
            </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.jayway.jsonpath</groupId>
            <artifactId>json-path</artifactId>
            <scope>test</scope>
        </dependency>
</dependencies>
</project>

【问题讨论】:

    标签: java spring maven


    【解决方案1】:

    一旦你通过 maven 构建了一个项目,它就会自动添加到 maven 本地存储库中,你可以从 pom.xml 中的任何 maven 项目中引用它。 请附上两个项目的 pom 文件。

    编辑: 将此依赖项添加到 projectA pom.xml 文件中:

    <dependency>
                    <groupId>com.firm</groupId>
                    <artifactId>projectB</artifactId>
                    <version>0.0.1-SNAPSHOT</version>
    </dependency>
    

    【讨论】:

    • 我添加了 poms - 您可以提供的任何帮助将不胜感激!谢谢
    • 您必须在 projectA pom.xml 中添加 projectB 作为依赖项。添加这个 pom 文件:com.firmprojectB0.0.1-SNAPSHOT
    • 我以前从未遇到过这个问题,但是 maven 抱怨它无法下载 maven-install-plugin,因为它“无法通过代理进行身份验证”,尽管所有其他依赖项和插件都加载了美好的?我怀疑任何人都可以提供帮助,但我想我会问!我快到了。
    • 我想通了 - 在我的本地代理服务器上刷新了 https 凭据,一切都流入了。谢谢!
    猜你喜欢
    • 2013-04-10
    • 2019-01-19
    • 1970-01-01
    • 2015-01-03
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-10
    相关资源
    最近更新 更多