0

С сегодняшнего дня мы больше не можем строить наш файл из яшмы. Для этого мы используем jasperreports-maven-plugin.Зачем нужен jasperreports-maven-plugin itext: itext: jar: 4.2.0?

В мавена 2.2.1, это было настроено так:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>jasperreports-maven-plugin</artifactId> 
    <version>1.0-beta-2</version> 
    <executions> 
     <execution> 
     <goals> 
      <goal>compile-reports</goal> 
     </goals> 
     <configuration> 
      <sourceDirectory>${basedir}/src/main/resources/reports</sourceDirectory> 
      <outputDirectory>>${project.build.directory}/classes/reports</outputDirectory> 
     </configuration> 
     </execution> 
    </executions> 
    <dependencies> 
     <dependency> 
     <groupId>net.sf.jasperreports</groupId> 
     <artifactId>jasperreports</artifactId> 
     <version>5.5.1</version> 
     <scope>compile</scope> 
     </dependency> 
     <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
     <scope>compile</scope> 
     </dependency> 
    </dependencies> 
    <configuration> 
     <sourceDirectory>C:\Windows\TEMP/src/main/resources/reports</sourceDirectory> 
     <outputDirectory>C:\Windows\TEMP\target/classes/reports</outputDirectory> 
    </configuration> 
    </plugin> 

Но, как было сказано, так как сегодня, мы получили эту ошибку сборки:

... 
Downloading: http://repo1.maven.org/maven2/itext/itext/4.2.0/itext-4.2.0.jar 
[INFO] ------------------------------------------------------------------------ 
[ERROR] BUILD ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] Failed to resolve artifact. 

Missing: 
---------- 
1) itext:itext:jar:4.2.0 

    Try downloading the file manually from the project website. 

    Then, install it using the command: 
    mvn install:install-file -DgroupId=itext -DartifactId=itext -Dversion=4.2.0 -Dpackaging=jar -Dfile=/path/to/file 

    Alternatively, if you host your own repository you can deploy the file there: 
    mvn deploy:deploy-file -DgroupId=itext -DartifactId=itext -Dversion=4.2.0 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id] 

    Path to dependency: 
    1) org.codehaus.mojo:jasperreports-maven-plugin:maven-plugin:1.0-beta-2 
    2) jasperreports:jasperreports:jar:1.2.0 
    3) itext:itext:jar:4.2.0 

Я думаю, что еще один вопрос (Dependency error in jasper-reports from itext) связано с его. И я попробовал решение Мехера использовать maven 3.2.3. Это похоже на решение, но мы не можем обновить (теперь) эту версию maven. Поэтому мне нужно другое решение для решения этой проблемы. Есть идеи? Я уже пытался исключить зависимости и использовать фиксированные версии, но мне не удалось добиться успеха в моей сборке. То, что я имею в виду следующее:

<!-- Compile jasper reports --> 
<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>jasperreports-maven-plugin</artifactId> 
    <version>1.0-beta-2</version> 
    <configuration> 
     <sourceDirectory>${basedir}/src/main/resources/reports</sourceDirectory> 
     <outputDirectory>${project.build.directory}/classes/reports</outputDirectory> 
    </configuration> 

    <executions> 
     <execution> 
      <goals> 
       <goal>compile-reports</goal> 
      </goals> 
      <phase>generate-sources</phase> 
     </execution> 
    </executions> 

    <dependencies> 
     <dependency> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>jasperreports-maven-plugin</artifactId> 
      <version>1.0-beta-2</version> 
      <exclusions> 
       <exclusion> 
        <groupId>net.sf.jasperreports</groupId> 
        <artifactId>jasperreports</artifactId>        
       </exclusion>        
      </exclusions> 
     </dependency> 

     <dependency> 
      <groupId>net.sf.jasperreports</groupId> 
      <artifactId>jasperreports</artifactId> 
      <version>5.5.1</version> 
      <exclusions> 
       <exclusion> 
        <groupId>com.lowagie</groupId> 
        <artifactId>itext</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 

     <dependency> 
      <groupId>com.lowagie</groupId> 
      <artifactId>itext</artifactId> 
      <version>2.1.7</version> 
     </dependency> 
    </dependencies> 
</plugin> 

Почему плагин до сих пор ищет IText: IText: банку: 4.2.0? Любые идеи или предложения для решения этой проблемы?

Спасибо!

+0

Я думаю, этого должно быть достаточно, чтобы заменить центральный URL-адрес репозитория. Он может просто использовать https - так что текущий url все еще: https://repo.maven.apache.org/maven2/ - поэтому в вас settings.xml добавьте репозиторий с id "central" и пусть он укажет на этот URL-адрес , itext все еще существует. – wemu

+0

Итак, вы имеете в виду, что я могу найти itext 4.2.0 в этом репозитории? Я уже пробовал это, и его там нет. Вот почему я пытаюсь использовать фиксированную версию itext. – Joris

+0

hm. Я думаю, что groupId неверен. itext: itext для версий с усыновителями. версии 4.2.x имеют com.lowagie: itext (groupId: artifactId). Я бы использовал «mvn help: dependency-tree», чтобы выяснить, откуда эта зависимость. Может быть, транзитивная зависимость в порядке, но она перезаписана чем-то в вашем собственном pom.xml – wemu

ответ

0

я решил мою проблему с помощью муравей построить свой доклад яшмы. Поэтому я пропустил плагин.

Мой муравей задача выглядит следующим образом:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>${maven-antrun-plugin.version}</version> 
    <executions> 
     <execution> 
      <id>compile-jasper-reports</id> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      <phase>generate-sources</phase> 
      <configuration>   
       <target> 
         <echo message="Start compile of jasper reports"/>        
          <mkdir dir="${project.build.directory}/classes/reports"/> 

        <taskdef name="jrc" classname="net.sf.jasperreports.ant.JRAntCompileTask" classpathref="maven.compile.classpath" /> 
        <jrc srcdir="${basedir}/src/main/resources/reports" 
         destdir="${project.build.directory}/classes/reports" 
         tempdir="${project.build.directory}/classes/reports" 
         keepjava="true" 
         xmlvalidation="true"> 
          <classpath refid="maven.compile.classpath"/> 
          <include name="**/*.jrxml"/> 
        </jrc>        
        </target> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 
+0

Это работает, потому что я не вижу, что вы устанавливаете версию для jasperreports, поэтому вы используете последнюю версию, которая имеет зависимость от itext '2.1.7.js', см. Ответ выше. (решение 4) –

3

фона:

IText Group NV является владельцем GroupID com.lowagie и com.itextpdf на Maven Central. IText Group NV выпустила com.lowagie:itext версию 2.1.7 в июле 2009 Следующий релиз от IText Group NV была com.itextpdf:itextpdf версия 5.0.0, в декабре 2009 г. Текущая версия (по состоянию на декабрь 2015 года) является 5.5.8 ,

iText Группа NV никогда не выпускала версию 4.x.x.

Где-то в 2011 году, компания под названием InProTopia «угнали» com.lowagie и выпустила вилку IText с номером версии 4.2.0 . Согласно [Руководствам Maven Central] [1], они должны были опубликовать это как com.inprotopia:itext, но они этого не сделали. Позже они опубликовали 4.2.1 со своими собственными патчами. Недавно iText Group NV владела com.lowagie и опубликовала версию 4.2.2 с переадресацией на com.itextpdf:itextpdf версия 5.5.6 (текущая версия на тот момент).

Возможные решения:

  1. Если вам нужно com.lowagie IText, вам необходимо установить исправленную версию в вашем pom.xml. Последний официальный релиз - 2.1.7.
  2. Если вам нужен iText 4.x.x, свяжитесь с InProTopia. Удачи вам в этом, потому что их веб-сайт не работает, и, насколько я могу судить, эта компания больше не существует.
  3. Если вы не против, какая версия iText вы используете, используйте текущую версию iText, опубликованную iText Group NV, com.itextpdf:itextpdf5.5.8 (по состоянию на декабрь 2015 года).
  4. Используйте последнюю версию jasperreports. Он имеет явную зависимость от iText 2.1.7.js, который представляет собой обычную версию iText для отчетов Jasper.

Дополнительная информация в блоге iText. http://itextpdf.com/maven-update-problem-with-itext-4.2.2

[1] https://maven.apache.org/guides/mini/guide-central-repository-upload.html

+0

Я действительно хочу использовать itext 2.1.7, но мне сложно использовать эту версию (вместо 4.2.0). В нашем проекте мы используем jasperreports 5.5.1 и itext 2.1.7, но jasperreports-maven-plugin по-прежнему хочет использовать 4.2.0 по какой-то причине. – Joris

+0

В этом случае я предлагаю вам обратиться за помощью к отчетам Jasper Reports. –

0

Попробуйте добавить этот репозиторий:

<repository> 
     <url>https://repository.liferay.com/nexus/content/groups/public/</url> 
     <id>liferay</id> 
     <name>Liferay</name> 
    </repository> 

Удачи!