2016-05-19 5 views
0

Я создал простой проект maven для создания заштрихованной банки. Я построил его, используя mvn clean compile. Он создает jar-файл, но после его извлечения я не вижу файлы .class, соответствующие моим исходным файлам java проекта. Я вижу отчетливо ниже сообщения, когда я строю, но не вижу никаких файлов .class в целевом каталоге.файлы классов, не созданные под целевым каталогом maven в IntelliJ

[INFO] --- Maven-компилятор-плагин: 3,1: компилировать (по умолчанию-компиляция) @ PersonalizationFeeder ---

обнаружено [INFO] Изменения - Перекомпилировав модуль!

[ПРЕДУПРЕЖДЕНИЕ] Кодировка файла не установлена ​​с использованием кодирования платформы UTF-8, то есть сборка зависит от платформы!

[INFO] Компиляция 10 исходных файлов в документы/персонализацияFeeder/target/classes [INFO] --------------------------- ---------------------------------------------

[ INFO] BUILD SUCCESS

В чем проблема? Мой pom.xml выглядит так.

<?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"> 
<parent> 
    <artifactId>data-analytics</artifactId> 
    <groupId>com.wooplr</groupId> 
    <version>0.0.1</version> 
</parent> 
<modelVersion>4.0.0</modelVersion> 

<artifactId>PersonalizationFeeder</artifactId> 
<packaging>jar</packaging> 
<properties> 
    <userlib.dir>Documents/userlibs</userlib.dir> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-core_2.10</artifactId> 
     <version>${spark.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-streaming-kafka_2.10</artifactId> 
     <version>${spark.version}</version> 
    </dependency>   
    <dependency> 
     <groupId>com.wooplr</groupId> 
     <artifactId>jedis</artifactId> 
     <version>1.0</version> 
     <scope>system</scope> 
     <systemPath>${userlib.dir}/jedis-2.7.3.jar</systemPath> 
    </dependency> 
</dependencies> 

<build> 
<sourceDirectory>src/main/java</sourceDirectory> 
<plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.1</version> 
     <configuration> 
      <source>1.7</source> 
      <target>1.7</target> 
     </configuration> 
    </plugin> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-shade-plugin</artifactId> 
     <version>2.2</version> 
     <executions> 
      <execution> 
       <phase>package</phase> 
       <goals> 
        <goal>shade</goal> 
       </goals> 
       <configuration> 
        <artifactSet> 
         <excludes> 
          <exclude>junit:junit</exclude> 

          <exclude>org.apache.maven:lib:tests</exclude> 
         </excludes> 
        </artifactSet> 
        <filters> 
         <filter> 
          <!--<artifact>*:*</artifact>--> 
          <excludes> 
           <excludeScope>system</excludeScope> 
           <exclude>META-INF/*.SF</exclude> 
           <exclude>META-INF/*.DSA</exclude> 
           <exclude>META-INF/*.RSA</exclude> 
          </excludes> 
         </filter> 
        </filters> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin> 
</plugins> 

+0

Что у вас есть в 'Documents/PersonalizationFeeder/target/classes'? Что вы ожидаете, неясно, и что IntelliJ делает в этом? –

+0

Почему вы явно указали расположение исходных файлов java (' src/main/java'). Это не обязательно. Как выглядит банка, если вы удалите «maven-shade-plugin». – uniknow

+0

@RC: Documents/PersonalizationFeeder/target/classes каталог пуст. Действительно, он должен создавать файлы .class из исходных файлов? Я ожидаю, что моя затененная банка (после ее создания) должна содержать файлы .class моих исходных файлов. Но я их не вижу. Я делаю что-то не так? – user553182

ответ

0

Проблема решена ... !! В одной из банок с зависимостью есть лицензионная банка, из-за которой она не может быть построена должным образом. Чтобы решить эту проблему, мне пришлось извлечь эту конкретную банку зависимости и удалить файлы .RSA, .DSA и * .SF из META-INF/dir, а затем сделать ее jar с помощью команды jar -cf, а затем использовать эту новую банку в качестве зависимости. Это сработало для меня. Спасибо всем.