2015-03-11 2 views
5

Например, когда я открываю хорошо развитый проект с открытым исходным кодом (например, lucene) в Eclipse (как с ant build.xml, так и с ivy ivysetting.xml), я могу запустить ant с build.xml для успешного создания всего проекта.Может ли плющ или плющ добавить связанные банки в JAVA построить путь библиотеки автоматически в Eclipse?

Однако проект полон ошибок в беспорядке классов .java. Это вызвано отключением внешних банок. Эти банки уже загружаются плющом и хранятся в {user} /. Ivy2/cache /. Кроме того, когда я вручную помещал каждую из этих банок в путь сборки этого проекта, ошибки исчезли.

Может ли плющ или ivyDE или некоторые другие инструменты автоматически вставлять банки в путь сборки JAVA?

Вот плющом setting.xml:

<!-- 
 
    Licensed to the Apache Software Foundation (ASF) under one 
 
    or more contributor license agreements. See the NOTICE file 
 
    distributed with this work for additional information 
 
    regarding copyright ownership. The ASF licenses this file 
 
    to you under the Apache License, Version 2.0 (the 
 
    "License"); you may not use this file except in compliance 
 
    with the License. You may obtain a copy of the License at 
 

 
    http://www.apache.org/licenses/LICENSE-2.0 
 

 
    Unless required by applicable law or agreed to in writing, 
 
    software distributed under the License is distributed on an 
 
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
 
    KIND, either express or implied. See the License for the 
 
    specific language governing permissions and limitations 
 
    under the License.  
 
--> 
 
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 
     xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd"> 
 
    <info 
 
     organisation="" 
 
     module="lucene-5.0.0" 
 
     status="integration"> 
 
\t </info> 
 
<ivysettings> 
 
    <settings defaultResolver="default"/> 
 
    
 
    <property name="local-maven2-dir" value="${user.home}/.m2/repository/" /> 
 
    
 
    <properties file="${ivy.settings.dir}/ivy-versions.properties" override="false"/> 
 
    
 
    <include url="${ivy.default.settings.dir}/ivysettings-public.xml"/> 
 
    <include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/> 
 
    <include url="${ivy.default.settings.dir}/ivysettings-local.xml"/> 
 
    <include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/> 
 

 
    <caches lockStrategy="artifact-lock" resolutionCacheDir="${common.build.dir}/ivy-resolution-cache" /> 
 

 
    <resolvers> 
 
    <ibiblio name="sonatype-releases" root="https://oss.sonatype.org/content/repositories/releases" m2compatible="true" /> 
 
    <ibiblio name="maven.restlet.org" root="http://maven.restlet.org" m2compatible="true" /> 
 
    <ibiblio name="releases.cloudera.com" root="http://repository.cloudera.com/content/repositories/releases" m2compatible="true" /> 
 
    
 
    <!-- needed only for newer svnkit releases, e.g. 1.8.x --> 
 
    <ibiblio name="svnkit-releases" root="http://maven.tmatesoft.com/content/repositories/releases" m2compatible="true" /> 
 

 
    <!-- you might need to tweak this from china so it works --> 
 
    <ibiblio name="working-chinese-mirror" root="http://uk.maven.org/maven2" m2compatible="true" /> 
 
    
 
    <!-- 
 
    <filesystem name="local-maven-2" m2compatible="true" local="true"> 
 
     <artifact 
 
      pattern="${local-maven2-dir}/[organisation]/[module]/[revision]/[module]-[revision].[ext]" /> 
 
     <ivy 
 
      pattern="${local-maven2-dir}/[organisation]/[module]/[revision]/[module]-[revision].pom" /> 
 
    </filesystem> 
 
    --> 
 

 
    <chain name="default" returnFirst="true" checkmodified="true" changingPattern=".*SNAPSHOT"> 
 
     <resolver ref="local"/> 
 
     <!-- <resolver ref="local-maven-2" /> --> 
 
     <resolver ref="main"/> 
 
     <resolver ref="maven.restlet.org" /> 
 
     <resolver ref="sonatype-releases" /> 
 
     <resolver ref="releases.cloudera.com"/> 
 
     <!-- <resolver ref="svnkit-releases" /> --> 
 
     <resolver ref="working-chinese-mirror" /> 
 
    </chain> 
 
    </resolvers> 
 

 
</ivysettings> 
 
</ivy-module>

ответ

-1

Вам нужно добавить ivysettings.xml файл в свой проект и установить его в настройках (Window -> Preferences -> Ivy -> Настройки: путь настройки Ivy). Когда он отсутствует, плющ не знает, где искать зависимости.

(Может быть, это достаточно, чтобы добавить файл в один из ваших проектов, но я не уверен.)

1

Это было бы, если вы используете Ivy Eclipse plugin. Если вы его установили, вам нужно добавить среду выполнения IVY в путь сборки проекта. Это можно сделать с помощью «Свойства проекта» -> «Путь сборки Java» на вкладке «Библиотеки», выберите «Добавить библиотеку» и выберите «Управляемые зависимости IvyDE».

Как только это будет сделано, решение Ivy добавит все банки, указанные в ivy.xml, в путь сборки проекта.

+0

Это не сработало. –

+0

Мой ivyDE равен 2.2, и это делается через Project Properties-> Java Build Path на вкладке Libraries, выберите Add Library и выберите IvyDE Managed Dependencies. И, Main: Файл Ivy: ivy-setting.xml, Classpath: отметьте «Включить заданные параметры проекта» и отметьте «Разрешить зависимости в рабочей области». Однако, когда я решаю проект, он не работает. Добавить Я добавил XML-файл к описанию вопроса. –

+0

«это не сработало», каким образом? вы получили какую-то ошибку? вы видите библиотеку Ivy в пути к классам? Есть ли в нем банки? –

Смежные вопросы