我正在尝试习惯Eclipse / Java,但我更熟悉MS VisualStudio。假设我有Java库(Project1),它通过Properties->Java Build Path->Libraries
对jar文件有一些依赖(例如:AWS SDK,gson,swagger等)。现在,如果我有Project2并通过Properties->Java Build Path->Project
将Project2的项目依赖项设置为Project1,我希望Project1依赖项也将包含在Project2中。我没有看到这种情况发生,或者我错过了一步。我一直在谷歌搜索,但我没有看到任何教程/文件讨论2级家属。我看到正在引用Project1 jar但是Project1的依赖项呢?我收到的错误如下:
无法解析XXXX类型。它是间接引用的 必需的.class文件XXXX
答案 0 :(得分:2)
我强烈建议使用 Maven ,这是一个优秀且易于使用的依赖项管理器。 可能你的日食已经附带了它,你所要做的就是:
为两个项目执行此操作:
右键单击两个项目,转到Rails.application.routes.draw do
devise_for :ideas
root 'welcome#index'
end
。
创建组ID , artirfact id ,并为您的项目指定版本。
它将在项目的根目录中生成 pom.xml 文件。 像这样:
Configure -> Convert to Maven Project
只需添加依赖关系标记即可为项目添加依赖关系。
<?xml version="1.0" encoding="UTF-8"?>
<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>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
</dependencies>
</project>
然后右键单击您的项目转到
<dependency>
<groupId>yourGroup</groupId>
<artifactId>yourProject</artifactId>
<version>1.0.0</version>
</dependency>
Run -> Run Configurations -> Maven Clean
它将自动为您下载并安装您的依赖项。
答案 1 :(得分:0)
你可能想看看Maven或像这样的工具(Gradle,Ivy ......)来处理你的依赖。
依赖Eclipse来定义构建过程(和依赖项)对于长期项目来说是一个坏主意。
答案 2 :(得分:0)