2017-06-21 50 views
0

我在NetBeans中创建了一个基于maven的新Java项目。当我没有添加任何依赖关系时,一切正常,但是当我使用下面给出的pom文件(来自不同的项目,类似)时,运行屏幕直接显示BUILD SUCCESS,而不列出任何System.out.print语句或任何输出从记录器。maven compile在NetBeans中不产生输出

的POM文件

<?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"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.optum.cda</groupId> 
    <artifactId>cda</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <properties> 
    <ctakes.version>4.0.0</ctakes.version> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <build> 
     <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.6.1</version> 
       <configuration> 
        <verbose>true</verbose> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>exec-maven-plugin</artifactId> 
       <version>1.6.0</version> 
       <configuration> 
        <verbose>true</verbose> 
        <executable>java</executable> 
        <arguments> 
        <argument>-Xms512m</argument> 
        <argument>-Xmx512m</argument> 
        <argument>-XX:NewRatio=3</argument> 
        <argument>-XX:+PrintGCTimeStamps</argument> 
        <argument>-XX:+PrintGCDetails</argument> 
        <argument>-Xloggc:gc.log</argument> 
        <argument>-classpath</argument> 
        <classpath/> 
        <!--<argument>com.redstack.App</argument>--> 
        </arguments> 
       </configuration> 
      </plugin> 
     </plugins> 
     </pluginManagement> 
    </build> 

    <!-- Adding cTAKES Dependecies here --> 
    <dependencies> 

     <!-- ctakes-core contains core classes, utilities, and commonly-used readers, writers and analysis engines. --> 
     <!-- ctakes-core will pull from maven central basic requirements: uima, uimafit, cleartk, type system ... --> 
     <!-- All other modules require ctakes-core. --> 
     <dependency> 
     <groupId>org.apache.ctakes</groupId> 
     <artifactId>ctakes-core</artifactId> 
     <version>${ctakes.version}</version> 
     </dependency> 

     <!-- ctakes-pos-tagger tags parts of speech for tokens in text. --> 
     <!-- ctakes-pos-tagger is required for ctakes-dictionary-lookup and ctakes-dictionary-lookup-fast. --> 
     <dependency> 
     <groupId>org.apache.ctakes</groupId> 
     <artifactId>ctakes-pos-tagger</artifactId> 
     <version>${ctakes.version}</version> 
     </dependency> 

     <!-- ctakes-chunker chunks tokens with parts of speech into phrases. --> 
     <!-- ctakes-chunker is required for the old ctakes-dictionary-lookup. --> 
     <dependency> 
     <groupId>org.apache.ctakes</groupId> 
     <artifactId>ctakes-chunker</artifactId> 
     <version>${ctakes.version}</version> 
     </dependency> 

     <!-- ctakes-lvg generates lexical variants of tokens in text. --> 
     <dependency> 
     <groupId>org.apache.ctakes</groupId> 
     <artifactId>ctakes-lvg</artifactId> 
     <version>${ctakes.version}</version> 
     </dependency> 

     <!-- ctakes-dictionary-lookup-fast discovers concepts in text and normalizes them to standard codes. --> 
     <!-- ctakes-dictionary-lookup-fast is much improved over the original ctakes-dictionary-lookup. --> 
     <dependency> 
     <groupId>org.apache.ctakes</groupId> 
     <artifactId>ctakes-dictionary-lookup-fast</artifactId> 
     <version>${ctakes.version}</version> 
     </dependency>  

     <!-- ctakes-assertion contains rule-based and machine-learning engines to discover entity attributes. --> 
     <!-- attributes: polarity, uncertainty, history_of, conditional, generic, subject --> 
     <!-- ctakes-assertion discovers more attributes than the ctakes-ne-contexts module. --> 
     <!-- ctakes-assertion will add ctakes-constituency-parser and ctakes-dependency-parser modules. --> 
     <!-- ctakes-assertion module requires mitre libraries that are not in maven central. --> 
     <dependency> 
     <groupId>org.apache.ctakes</groupId> 
     <artifactId>ctakes-assertion</artifactId> 
     <version>${ctakes.version}</version> 
     </dependency> 

     <!-- ctakes-ne-contexts contains rule-based engines to discover entity attributes. --> 
     <!-- attributes: polarity, status --> 
     <dependency> 
     <groupId>org.apache.ctakes</groupId> 
     <artifactId>ctakes-ne-contexts</artifactId> 
     <version>${ctakes.version}</version> 
     </dependency> 

     <!-- ctakes-drug-ner discovers Medications and related attributes such as strength, dosage, frequency, etc.--> 
     <!-- ctakes-drug-ner will add ctakes-chunker, ctakes-lvg, ctakes-dictionary-lookup, 
      ctakes-context-tokenizer, ctakes-ne-contexts modules. --> 
     <dependency> 
     <groupId>org.apache.ctakes</groupId> 
     <artifactId>ctakes-drug-ner</artifactId> 
     <version>${ctakes.version}</version> 
     </dependency> 

     <!-- ctakes-ytex and ctakes-ytex-uima are a collection of ctakes extensions. --> 
     <!-- ctakes-ytex-uima will add ctakes-pos-tagger, ctakes-chunker, ctakes-lvg, 
      ctakes-dictionary-lookup, ctakes-context-tokenizer, ctakes-constituency-parser, 
      ctakes-dependency-parser, ctakes-assertion, ctakes-ne-contexts. --> 
     <dependency> 
     <groupId>org.apache.ctakes</groupId> 
     <artifactId>ctakes-ytex</artifactId> 
     <version>${ctakes.version}</version> 
     </dependency> 


     <!-- ctakes-clinical-pipeline contributes very little on its own, but loads many other modules. --> 
     <!-- ctakes-temporal will add ctakes-preprocessor, ctakes-pos-tagger, ctakes-chunker, ctakes-lvg, 
      ctakes-dictionary-lookup-fast, ctakes-context-tokenizer, ctakes-constituency-parser, 
      ctakes-dependency-parser, ctakes-assertion, ctakes-ne-contexts, ctakes-drug-ner, ctakes-ytex-uima. --> 
     <dependency> 
     <groupId>org.apache.ctakes</groupId> 
     <artifactId>ctakes-clinical-pipeline</artifactId> 
     <version>${ctakes.version}</version> 
     </dependency> 


     <!-- ctakes-relation-extractor can extract relations between entities such as location and degree. --> 
     <!-- ctakes-relation-extractor will add ctakes-pos-tagger, ctakes-chunker, ctakes-lvg, 
      ctakes-dictionary-lookup, ctakes-context-tokenizer, ctakes-constituency-parser, 
      ctakes-dependency-parser, ctakes-ne-contexts. --> 
     <dependency> 
     <groupId>org.apache.ctakes</groupId> 
     <artifactId>ctakes-relation-extractor</artifactId> 
     <version>${ctakes.version}</version> 
     </dependency> 


     <!-- ctakes-temporal discovers entities, temporal expressions, temporal relations, 
      and document-creation-time relativity. --> 
     <!-- ctakes-temporal will add ctakes-pos-tagger, ctakes-chunker, ctakes-lvg, 
      ctakes-dictionary-lookup-fast, ctakes-context-tokenizer, ctakes-constituency-parser, 
      ctakes-dependency-parser, ctakes-relation-extractor, ctakes-clinical-pipeline. --> 
     <dependency> 
     <groupId>org.apache.ctakes</groupId> 
     <artifactId>ctakes-temporal</artifactId> 
     <version>${ctakes.version}</version> 
     </dependency> 


     <!-- ctakes-coreference discovers coreferent entities in text. --> 
     <!-- ctakes-coreference will add ctakes-constituency-parser, ctakes-dictionary-lookup, ctakes-assertion, 
      ctakes-temporal and a large UMLS database. --> 
     <dependency> 
     <groupId>org.apache.ctakes</groupId> 
     <artifactId>ctakes-coreference</artifactId> 
     <version>${ctakes.version}</version> 
     </dependency>  

    </dependencies> 
    <!-- End of cTAKES Dependencies --> 

</project> 

我拿到一旦运行我的主文件输出:

cd C:\Users\tdas1006\Documents\NetBeansProjects\cda; "JAVA_HOME=C:\\Program Files\\Java\\jdk1.8.0_131" cmd /c "\"\"C:\\Program Files\\NetBeans 8\\NetBeans 8.2\\java\\maven\\bin\\mvn.bat\" -Dexec.args=\"-classpath %classpath com.optum.cda.main.Test\" -Dexec.executable=\"C:\\Program Files\\Java\\jdk1.8.0_131\\bin\\java.exe\" -Dexec.classpathScope=runtime -Dmaven.ext.class.path=\"C:\\Program Files\\NetBeans 8\\NetBeans 8.2\\java\\maven-nblib\\netbeans-eventspy.jar\" -Dfile.encoding=UTF-8 org.codehaus.mojo:exec-maven-plugin:exec\"" 
Running NetBeans Compile On Save execution. Phase execution is skipped and output directories of dependency projects (with Compile on Save turned on) will be used instead of their jar artifacts. 
[INFO] Scanning for projects... 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building cda 1.0-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- exec-maven-plugin:1.6.0:exec (default-cli) @ cda --- 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 6.353s 
[INFO] Finished at: Thu Jun 22 01:41:42 IST 2017 
[INFO] Final Memory: 11M/122M 
[INFO] ------------------------------------------------------------------------ 

可能是什么问题?

+0

您要执行什么目标?您是从命令行还是通过NetBeans中的插件运行maven? – Inxsible

+0

我使用maven的并使用netbeans –

+0

中的“运行文件”选项运行它,您是否设置了在单击“运行文件”选项时运行的目标。不太熟悉NetBeans,但在Eclipse中,您需要设置目标以在您右键单击pom文件并选择Run As时运行 - > Maven Build – Inxsible

回答

0

我找到了一个解决方案,但我真的不明白它为什么起作用。也许有人可以指出。

我所做的是更改maven执行目标的参数(org.codehaus.mojo:exec-maven-plugin:exec)。以前它使用java来执行导致问题的类。当我切换到使用javaw而不是java作为可执行文件时,一切正常,我不知道为什么!

我更改了nbactions.xml文件以在目标中包含javaw。已编辑的文件:

<?xml version="1.0" encoding="UTF-8"?> 
<actions> 
     <action> 
      <actionName>run</actionName> 
      <packagings> 
       <packaging>jar</packaging> 
      </packagings> 
      <goals> 
       <goal>process-classes</goal> 
       <goal>org.codehaus.mojo:exec-maven-plugin:exec</goal> 
      </goals> 
      <properties> 
       <exec.args>-classpath %classpath ${packageClassName}</exec.args> 
       <exec.executable>javaw</exec.executable> 
      </properties> 
     </action> 
     <action> 
      <actionName>run.single.main</actionName> 
      <packagings> 
       <packaging>*</packaging> 
      </packagings> 
      <goals> 
       <goal>process-classes</goal> 
       <goal>org.codehaus.mojo:exec-maven-plugin:exec</goal> 
      </goals> 
      <properties> 
       <exec.args>-classpath %classpath ${packageClassName}</exec.args> 
       <exec.executable>javaw</exec.executable> 
       <exec.classpathScope>${classPathScope}</exec.classpathScope> 
      </properties> 
     </action> 
     <action> 
      <actionName>debug</actionName> 
      <packagings> 
       <packaging>jar</packaging> 
      </packagings> 
      <goals> 
       <goal>process-classes</goal> 
       <goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal> 
      </goals> 
      <properties> 
       <exec.args>-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=${jpda.address} -classpath %classpath ${packageClassName}</exec.args> 
       <exec.executable>javaw</exec.executable> 
       <jpda.listen>true</jpda.listen> 
      </properties> 
     </action> 
     <action> 
      <actionName>debug.single.main</actionName> 
      <packagings> 
       <packaging>*</packaging> 
      </packagings> 
      <goals> 
       <goal>process-classes</goal> 
       <goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal> 
      </goals> 
      <properties> 
       <exec.args>-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=${jpda.address} -classpath %classpath ${packageClassName}</exec.args> 
       <exec.executable>javaw</exec.executable> 
       <exec.classpathScope>${classPathScope}</exec.classpathScope> 
       <jpda.listen>true</jpda.listen> 
      </properties> 
     </action> 
     <action> 
      <actionName>profile</actionName> 
      <packagings> 
       <packaging>jar</packaging> 
      </packagings> 
      <goals> 
       <goal>process-classes</goal> 
       <goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal> 
      </goals> 
      <properties> 
       <exec.args>-classpath %classpath ${packageClassName}</exec.args> 
       <exec.executable>javaw</exec.executable> 
      </properties> 
     </action> 
     <action> 
      <actionName>profile.single.main</actionName> 
      <packagings> 
       <packaging>*</packaging> 
      </packagings> 
      <goals> 
       <goal>process-classes</goal> 
       <goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal> 
      </goals> 
      <properties> 
       <exec.args>-classpath %classpath ${packageClassName}</exec.args> 
       <exec.executable>javaw</exec.executable> 
       <exec.classpathScope>${classPathScope}</exec.classpathScope> 
      </properties> 
     </action> 
    </actions>