Java Ivy/Maven 为 LucidWorks auto-phrase-tokenizer 构建依赖解析

标签 java maven ant solr

我没有构建 Java 项目的经验,我正在尝试为 Solr 构建一个分词器(可在此处找到:https://github.com/LucidWorks/auto-phrase-tokenfilter)。我在编译期间收到有关无法解析的依赖项的错误。缺少的依赖项是 org.reSTLet 和 org.reSTLet.servlet。这些的存储库在这里:http://maven.restlet.com/org/restlet/jee/org.restlet/2.1.1/ . Ant/Ivy/Maven 似乎在 repo1.maven.org 上寻找 reSTLet 依赖项。我不确定如何让 Ivy 在正确的位置查找这些内容。

我尝试手动下载 reSTLet,但不确定将 jar 文件放在哪里。它看起来像/usr/share/maven-repository/中的某个地方,但我没有运气把它们放在那里,而且我不确定如果我把它们放在里面,ant/ivy/maven 是否会在那里寻找无论如何都是正确的地方。

如有任何帮助或指导,我们将不胜感激。

这是构建输出:

root@solrtest:/usr/src/auto-phrase-tokenfilter# ant
Buildfile: /usr/src/auto-phrase-tokenfilter/build.xml

init:

ivy-download:

ivy-init:

ivy-resolve:
[ivy:resolve] :: Apache Ivy 2.3.0 - 20130110142753 :: http://ant.apache.org/ivy/ ::
[ivy:resolve] :: loading settings :: file = /usr/src/auto-phrase-tokenfilter/ivy/ivy-settings.xml
[ivy:resolve] :: resolving dependencies :: com.lucidworks.demo#autophrase-tokenfilter;working@solrtest
[ivy:resolve]   confs: [default, compile, test]
[ivy:resolve]   found org.apache.lucene#lucene-analyzers-common;4.10.3 in central
[ivy:resolve]   found org.apache.lucene#lucene-core;4.10.3 in central
[ivy:resolve]   found org.apache.lucene#lucene-codecs;4.10.3 in central
[ivy:resolve]   found org.apache.solr#solr-core;4.10.3 in central
[ivy:resolve]   found org.apache.lucene#lucene-analyzers-kuromoji;4.10.3 in central
[ivy:resolve]   found org.apache.lucene#lucene-analyzers-phonetic;4.10.3 in central
[ivy:resolve]   found org.apache.lucene#lucene-expressions;4.10.3 in central
[ivy:resolve]   found org.apache.lucene#lucene-grouping;4.10.3 in central
[ivy:resolve]   found org.apache.lucene#lucene-highlighter;4.10.3 in central
[ivy:resolve]   found org.apache.lucene#lucene-join;4.10.3 in central
[ivy:resolve]   found org.apache.lucene#lucene-memory;4.10.3 in central
[ivy:resolve]   found org.apache.lucene#lucene-misc;4.10.3 in central
[ivy:resolve]   found org.apache.lucene#lucene-queries;4.10.3 in central
[ivy:resolve]   found org.apache.lucene#lucene-queryparser;4.10.3 in central
[ivy:resolve]   found org.apache.lucene#lucene-spatial;4.10.3 in central
[ivy:resolve]   found org.apache.lucene#lucene-suggest;4.10.3 in central
[ivy:resolve]   found org.apache.solr#solr-solrj;4.10.3 in central
[ivy:resolve]   found commons-io#commons-io;2.3 in central
[ivy:resolve]   found org.apache.httpcomponents#httpclient;4.3.1 in central
[ivy:resolve]   found org.apache.httpcomponents#httpcore;4.3 in central
[ivy:resolve]   found org.apache.httpcomponents#httpmime;4.3.1 in central
[ivy:resolve]   found org.apache.zookeeper#zookeeper;3.4.6 in central
[ivy:resolve]   found org.codehaus.woodstox#wstx-asl;3.2.7 in central
[ivy:resolve]   found org.noggit#noggit;0.5 in central
[ivy:resolve]   found org.slf4j#slf4j-api;1.7.6 in central
[ivy:resolve]   found com.carrotsearch#hppc;0.5.2 in central
[ivy:resolve]   found com.google.guava#guava;14.0.1 in central
[ivy:resolve]   found com.google.protobuf#protobuf-java;2.5.0 in central
[ivy:resolve]   found com.googlecode.concurrentlinkedhashmap#concurrentlinkedhashmap-lru;1.2 in central
[ivy:resolve]   found com.spatial4j#spatial4j;0.4.1 in central
[ivy:resolve]   found commons-cli#commons-cli;1.2 in central
[ivy:resolve]   found commons-codec#commons-codec;1.9 in central
[ivy:resolve]   found commons-configuration#commons-configuration;1.6 in central
[ivy:resolve]   found commons-fileupload#commons-fileupload;1.2.1 in central
[ivy:resolve]   found commons-lang#commons-lang;2.6 in central
[ivy:resolve]   found dom4j#dom4j;1.6.1 in central
[ivy:resolve]   found joda-time#joda-time;2.2 in central
[ivy:resolve]   found log4j#log4j;1.2.17 in central
[ivy:resolve]   found org.antlr#antlr-runtime;3.5 in central
[ivy:resolve]   found org.apache.hadoop#hadoop-annotations;2.2.0 in central
[ivy:resolve]   found org.apache.hadoop#hadoop-auth;2.2.0 in central
[ivy:resolve]   found org.apache.hadoop#hadoop-common;2.2.0 in central
[ivy:resolve]   found org.apache.hadoop#hadoop-hdfs;2.2.0 in central
[ivy:resolve]   found org.eclipse.jetty#jetty-continuation;8.1.10.v20130312 in central
[ivy:resolve]   found org.eclipse.jetty#jetty-deploy;8.1.10.v20130312 in central
[ivy:resolve]   found org.eclipse.jetty#jetty-http;8.1.10.v20130312 in central
[ivy:resolve]   found org.eclipse.jetty#jetty-io;8.1.10.v20130312 in central
[ivy:resolve]   found org.eclipse.jetty#jetty-jmx;8.1.10.v20130312 in central
[ivy:resolve]   found org.eclipse.jetty#jetty-security;8.1.10.v20130312 in central
[ivy:resolve]   found org.eclipse.jetty#jetty-server;8.1.10.v20130312 in central
[ivy:resolve]   found org.eclipse.jetty#jetty-servlet;8.1.10.v20130312 in central
[ivy:resolve]   found org.eclipse.jetty#jetty-util;8.1.10.v20130312 in central
[ivy:resolve]   found org.eclipse.jetty#jetty-webapp;8.1.10.v20130312 in central
[ivy:resolve]   found org.eclipse.jetty#jetty-xml;8.1.10.v20130312 in central
[ivy:resolve]   found org.eclipse.jetty.orbit#javax.servlet;3.0.0.v201112011016 in central
[ivy:resolve]   found org.ow2.asm#asm;4.1 in central
[ivy:resolve]   found org.ow2.asm#asm-commons;4.1 in central
[ivy:resolve]   found org.apache.lucene#lucene-test-framework;4.10.3 in central
[ivy:resolve]   found com.carrotsearch.randomizedtesting#junit4-ant;2.1.6 in central
[ivy:resolve]   found com.carrotsearch.randomizedtesting#randomizedtesting-runner;2.1.6 in central
[ivy:resolve]   found junit#junit;4.10 in central
[ivy:resolve]   found org.apache.ant#ant;1.8.2 in central
[ivy:resolve]   found org.apache.solr#solr-test-framework;4.10.3 in central
[ivy:resolve] :: resolution report :: resolve 8098ms :: artifacts dl 47ms
        ---------------------------------------------------------------------
        |                  |            modules            ||   artifacts   |
        |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
        ---------------------------------------------------------------------
        |      default     |   59  |   0   |   0   |   0   ||   57  |   0   |
        |      compile     |   59  |   0   |   0   |   0   ||   57  |   0   |
        |       test       |   65  |   0   |   0   |   0   ||   63  |   0   |
        ---------------------------------------------------------------------
[ivy:resolve]
[ivy:resolve] :: problems summary ::
[ivy:resolve] :::: WARNINGS
[ivy:resolve]           module not found: org.restlet.jee#org.restlet;2.1.1
[ivy:resolve]   ==== central: tried
[ivy:resolve]     http://repo1.maven.org/maven2/org/restlet/jee/org.restlet/2.1.1/org.restlet-2.1.1.pom
[ivy:resolve]     -- artifact org.restlet.jee#org.restlet;2.1.1!org.restlet.jar:
[ivy:resolve]     http://repo1.maven.org/maven2/org/restlet/jee/org.restlet/2.1.1/org.restlet-2.1.1.jar
[ivy:resolve]           module not found: org.restlet.jee#org.restlet.ext.servlet;2.1.1
[ivy:resolve]   ==== central: tried
[ivy:resolve]     http://repo1.maven.org/maven2/org/restlet/jee/org.restlet.ext.servlet/2.1.1/org.restlet.ext.servlet-2.1.1.pom
[ivy:resolve]     -- artifact org.restlet.jee#org.restlet.ext.servlet;2.1.1!org.restlet.ext.servlet.jar:
[ivy:resolve]     http://repo1.maven.org/maven2/org/restlet/jee/org.restlet.ext.servlet/2.1.1/org.restlet.ext.servlet-2.1.1.jar
[ivy:resolve]           ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve]           ::          UNRESOLVED DEPENDENCIES         ::
[ivy:resolve]           ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve]           :: org.restlet.jee#org.restlet;2.1.1: not found
[ivy:resolve]           :: org.restlet.jee#org.restlet.ext.servlet;2.1.1: not found
[ivy:resolve]           ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve]
[ivy:resolve] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS

BUILD FAILED
/usr/src/auto-phrase-tokenfilter/build.xml:115: impossible to resolve dependencies:
        resolve failed - see output for details

Total time: 9 seconds

build.xml:

<project name="auto-phrase-tokenfilter" default="dist" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant" >
  <description>Builds Autophrasing Token Filter</description>

  <!-- set global properties for this build -->
  <property name="build.dir" location="build"/>
  <property name="dist.dir"  location="dist"/>
  <property name="build.lib.dir" value="${basedir}/build-lib"/>

  <property name="src.dir" location="src/main/java"/>
  <property name="classes.dir" location="${build.dir}/java" />
  <property name="test.dir" location="src/test" />
  <property name="test.classes.dir" location="${build.dir}/test" />

  <property name="ivy.dir" location="${basedir}/ivy"/>
  <property name="ivy.dep.file" location="ivy.xml" />
  <property name="ivy.version" value="2.3.0"/>
  <property name="ivy.lib.dir"  location="${build.lib.dir}/ivy/lib" />

  <property name="project.name" value="${ant.project.name}" />
  <property name="version.number" value="1.0"/>

  <!-- change this to include ivy download dest -->
  <target name="set-classpaths" depends="ivy-retrieve" >
    <path id="compile-classpath" >
      <fileset dir="${ivy.lib.dir}/compile" includes="*.jar"/>
    </path>

    <path id="test-classpath">
      <fileset dir="${ivy.lib.dir}/test" includes="*.jar"/>
    </path>
  </target>

  <target name="init">
    <!-- Create the build directory structure used by compile -->
    <mkdir dir="${build.dir}"/>
    <mkdir dir="${classes.dir}"/>
    <mkdir dir="${test.classes.dir}"/>
  </target>

  <target name="compile" depends="init,ivy-retrieve,set-classpaths" description="compile the source " >
    <!-- Compile the java code from ${src} into ${build} -->
    <javac srcdir="${src.dir}" destdir="${classes.dir}" includeantruntime="false" >
      <classpath>
        <fileset dir="${ivy.lib.dir}" includes="compile/*.jar" />
      </classpath>
    </javac>
  </target>

  <target  name="compile-test" depends="compile" >
    <javac srcdir="${test.dir}" destdir="${test.classes.dir}" includeantruntime="false" >
      <classpath>
        <fileset dir="${ivy.lib.dir}" includes="test/*.jar" />
        <pathelement location="${classes.dir}" />
      </classpath>
    </javac>
  </target>

  <target name="dist" depends="compile,test" description="generate the distribution" >
    <!-- Create the distribution directory -->
    <ivy:resolve/>
    <mkdir dir="${classes.dir}"/>
    <jar jarfile="${dist.dir}/${project.name}-${version.number}.jar" basedir="${classes.dir}"/>
    <!-- Add JavaDocs -->

  </target>

  <target name="clean" description="clean up" >
    <!-- Delete the ${build.dir} and ${dist.dir} directory trees -->
    <ivy:cleancache/>
    <delete dir="${build.dir}"/>
    <delete dir="${dist.dir}"/>
    <delete dir="${ivy.lib.dir}"/>
  </target>

  <target name="test" depends="compile,compile-test">
    <echo message=""/>
    <junit printsummary="yes" fork="yes" haltonfailure="yes">
      <formatter usefile="false" type="plain"/>
      <classpath>
        <path refid="test-classpath"/>
        <pathelement location="${classes.dir}"/>
        <pathelement location="${test.classes.dir}" />
      </classpath>
      <assertions>
        <enable/>
      </assertions>
      <test name="com.lucidworks.analysis.TestAutoPhrasingTokenFilter"/>
    </junit>
  </target>

  <!-- Ivy -->
  <condition property="ivy.jar.exists">
    <or>
      <available file="${build.lib.dir}/ivy-${ivy.version}.jar"/>
      <isset property="offline"/>
    </or>
  </condition>

  <target name="ivy-download" unless="ivy.jar.exists">
    <mkdir dir="${build.lib.dir}"/>
    <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar"
         dest="${build.lib.dir}/ivy-${ivy.version}.jar"
         usetimestamp="true"/>
  </target>

  <target name="ivy-init" depends="ivy-download" unless="skip.ivy" description="initialize ivy">
    <path id="ivy.lib.path">
      <fileset dir="${build.lib.dir}" includes="ivy-${ivy.version}.jar"/>
    </path>
    <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
    <ivy:settings file="${ivy.dir}/ivy-settings.xml"/>
  </target>

  <target name="ivy-resolve" depends="ivy-init" >
    <ivy:resolve />
  </target>

  <target name="ivy-retrieve" depends="ivy-resolve" >
    <ivy:retrieve pattern="${ivy.lib.dir}/[conf]/[artifact]-[revision].[ext]" sync="true" />
  </target>

</project>

ivy/ivy-settings.xml:

<ivysettings>
    <settings defaultResolver="central"/>
    <resolvers>
        <ibiblio name="central" m2compatible="true"/>
    </resolvers>
</ivysettings>

最佳答案

以下是我最终为解决依赖性问题所做的工作。我不确定我配置的模块行中的哪一行是获取依赖项的行。链就是这样做的——它将按照指定的顺序处理存储库。

<ivysettings>
    <settings defaultResolver="my-chain"/>
    <resolvers>
        <chain name="my-chain">
                <ibiblio name="restlet" m2compatible="true" root="http://maven.restlet.com"/>
                <ibiblio name="central" m2compatible="true"/>
        </chain>
    </resolvers>
    <modules>
        <module organization="org.restlet.jee" resolver="restlet"/>
        <module organization="restlet" resolver="restlet"/>
        <module organization="org.restlet" resolver="restlet"/>
    </modules>
</ivysettings>

关于Java Ivy/Maven 为 LucidWorks auto-phrase-tokenizer 构建依赖解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30630227/

相关文章:

java - 在 ArrayList<String> 中查找匹配的字符串出现

java - 如何在 Google 开发者控制台中更改目录

maven - OpenShift 添加自定义 Maven 存储库

java - Ant If/Unless 属性问题

maven - 错误 : Unable to locate tools. jar 。预计在/usr/lib/jvm/java-6-sun-1.6.0.26/lib/tools.jar中找到

java - 为什么我的代码首先打印一个空行?

java - Spring boot - Jpa - SaveAll(Entity <S>) 数据库中缺少实体

Java 错误 : New exception is thrown in catch block, 原始堆栈跟踪可能丢失

java - Maven:在部署步骤之前设置版本会导致缺少 Artifact

ant - ant 和 ant clean all 的区别?