我正在将我的Java(EJB项目)和Eclipse中的Dynamic Web项目迁移到Gradle。我正在使用Buildship。我的项目有一个Eclipse库配置,维护起来很痛苦。对于等级,这很好,因为我只是将这些“依赖项”添加到build.gradle文件中……等等。你知道。没关系。
我的问题是,我是否可以使用Gradle中的Eclipse插件来重新配置eclipse中项目的Build路径,并删除旧的Eclipse库,并让Eclipse中的项目基于Gradle下载的相同jar作为依赖项构建,因此如果我更改其中一个依赖项的版本,Eclipse编译器也将基于新的jar依赖项编译代码。谢谢。
我编辑以添加文件:
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>ElizaTourismEJB</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.jboss.tools.jst.web.kb.kbbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.jboss.tools.cdi.core.cdibuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.hibernate.eclipse.console.hibernateBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.jboss.tools.jst.web.kb.kbnature</nature>
<nature>org.jboss.tools.cdi.core.cdinature</nature>
<nature>org.hibernate.eclipse.console.hibernateNature</nature>
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
</natures>
</projectDescription>
.class路径:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src/main/java">
<attributes>
<attribute name="FROM_GRADLE_MODEL" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="src/test/java">
<attributes>
<attribute name="FROM_GRADLE_MODEL" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/"/>
<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer">
<attributes>
<attribute name="org.eclipse.jst.component.nondependency" value=""/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Jackson2"/>
<classpathentry kind="lib" path="commons-collections4-4.1.jar"/>
<classpathentry kind="lib" path="/ElizaTourismREST/WebContent/WEB-INF/lib/freemarker.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Redis"/>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/com.ibm.ws.st.core.runtimeClasspathProvider/WebSphere Application Server Liberty Profile 16003">
<attributes>
<attribute name="owner.project.facets" value="jst.ejb;jpt.jpa"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="/Developer/java-lib/aspirin-0.11.01.jar"/>
<classpathentry kind="src" path=".apt_generated">
<attributes>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/bin"/>
</classpath>
build.gradle:
apply plugin: 'java'
apply plugin: 'eclipse'
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
jcenter()
mavenCentral()
}
ext {
swagger_annotations_version = "1.5.9"
}
dependencies {
compile 'org.slf4j:slf4j-api:1.7.21'
testCompile 'junit:junit:4.12'
compile group: 'javax', name: 'javaee-api', version:'7.0'
compile "io.swagger:swagger-annotations:$swagger_annotations_version"
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.5.4'
compile group: 'com.fasterxml.jackson.module', name: 'jackson-module-jaxb-annotations', version: '2.5.4'
compile group: 'biz.paluch.redis', name: 'lettuce', version: '4.3.0.Final'
compile group: 'org.masukomi', name: 'aspirin', version: '0.11.01'
compile group: 'org.freemarker', name: 'freemarker', version: '2.3.23'
}
我认为您不需要或不想在Gradle中使用eclipseClasspath
任务。Buildship应该为您维护正确的项目配置。
问题是您仍然在项目生成路径中手动添加了库。例如,Jackson、Commons Collections、Redis等。这些应该删除,只剩下Gradle管理的“项目和外部依赖项”库。项目的生成路径库基本上应如下所示:
看看它是如何包含构建中的几个库的。项目和外部依赖项下的gradle
文件,例如commons集合和slf4j?
以这种方式设置构建路径后,您可以让构建器更新/管理 Eclipse 项目设置,而不是要求 Gradle 执行此操作:在对 build.gradle
进行更改后,右键单击项目并选择“Gradle”。
如果Bulidship可以在< code>build.gradle发生变化时自动执行这一操作,那就太好了,但我怀疑这样做的性能可能会有问题。
问题内容: 是否可以在Gradle(在Android Studio中)中指定对当前项目边界之外的另一个gradle项目的依赖关系?例如,相对路径如下所示: 所以我想的是这样的: 我有一个Android应用程序。结构如下: MyApp(路径为/ Users / foo / workspace / MyApp) 应用程序(路径为/ Users / foo / workspace / MyApp / a
一个项目在Google App Engine上运行。该项目具有依赖项,该依赖项使用的类由于安全限制而无法在应用程序引擎上调用(它不在白名单上)。我(非常有黑客感)的解决方案是将该类的修改版本复制到我的项目中(匹配原始类的名称和包),而不需要受限类。这在dev和live上都适用,我假设是因为我的源代码出现在外部依赖项之前的类路径中。 为了让它更干净一些,我决定将该类的修改版本放入它自己的项目中,该项
我在我的Eclipse中有一个简单的gradle项目。我更新了build.gradle以包含一些apache http JAR... 但是,在我的代码中,我引用了一些Apache HTTP内容: 我试着做一次清洁,但那不起作用。我的gradle插件是:
我的示例项目按预期工作,但我不希望我需要将依赖项定义为和两次。 shadow=>依赖项作为运行时DEP添加到发布的pom中(参见代码) implementation=>用于编译项目本身的依赖项,例如在您的IDE中。
问题内容: 我正在使用gradle / intellij-idea开发一个多模块项目,这是我的项目主页的结构: 如您所见,我有多个子项目(全部为Java),如何使它们依赖于某些公共资源(“数据”项目,该项目不包含任何代码,仅包含资源),以及它们各自的资源? 同样,最好是intellij-idea可以使用JetGradle自动选择这些依赖项(JetGradle可以很好地选择每个子项目中的默认grad
问题内容: 我有一个Eclipse项目/工作区库,其中包含偶尔交付给客户的功能。我们都是研究人员,因此这是非常非正式的。我用文档制作了一个JAR和Word文件,并将其发送给他们。 我希望向他们发送一个JAR文件,其中仅包含他们实际需要的内容,以简化操作。如果他们需要类X,Y,Z和W,那么我将发送一个包含X,Y,Z和W以及依赖于它们的所有类的JAR文件。 现在,我正在以一种绝望的手动方式执行此操作(