Netbeans с Maven - странное поведение класса - PullRequest
0 голосов
/ 15 марта 2012

В настоящее время у меня есть приложение Maven в Netbeans.Поскольку мне нужно использовать регулярные выражения в моем проекте, я добавил следующий класс в один из моих пакетов: http://docs.oracle.com/javase/tutorial/essential/regex/test_harness.html

Я изменил все операторы ввода / вывода, чтобы использовать System.out и BufferedReader.Когда я запускаю этот класс из нового проекта, он работает, как и ожидалось.Но когда я добавляю его в свой проект Maven, я не вижу выходных данных после:

NetBeans: выполнение '/ usr / share / maven2 / bin / mvn -Dexec.classpathScope = runtime -Dexec.args = -classpath% classpath MySource.RegexTestHarness -Dexec.executable = / home / gowri / jdk1.6.0_20 / bin / java -Dnetbeans.execution = истинные классы процесса org.codehaus.mojo: exec-maven-plugin: 1.1.1: exec 'NetBeans: JAVA_HOME = / home / gowri / jdk1.6.0_20

Сканирование проектов ...


Построение сегмента задачи crawler4j: [process-classes, org.codehaus.mojo: exec-maven-plugin: 1.1.1: exec]


[принудительный контроль: принудительное исполнение]

[ресурсы: ресурсы]

Использование 'UTF-8'кодирование для копирования отфильтрованных ресурсов.

Копирование 2 ресурсов

[compiler: compile]

Компиляция 1 исходного файла в / home / gowri / WORKSPACE / yasserg-crawler4j-7b8bf91 /target / classes

[exec: exec]

Может кто-нибудь сказать, почему это происходит?Я убедился, что этот класс является единственным классом с функцией main (), и я нажимаю «Выполнить файл», а не «Выполнить проект».

Спасибо:)

РЕДАКТИРОВАТЬ: я только что понял, когда я преобразовываю все операторы System.out.print () в System.out.println (), только тогда я могу видеть правильный вывод.Есть идеи почему?

1 Ответ

2 голосов
/ 16 марта 2012

Кажется, проблема в отсоединенном System.in или System.out из окна «Вывод» при использовании maven в Netbeans, как указано в этом выпуске . Попробуйте обновить exec-maven-plugin до 1.2 в файле nbactions.xml в вашем текущем каталоге Project, эта ошибка была исправлена ​​в этой новой версии.

Чтобы сделать это с помощью пользовательского интерфейса, перейдите в Project-> Properties-> Actions-> В действии: Запустите файл через main (), Измените точные цели на что-то вроде этого: "process-classes org.codehaus.mojo: exec-maven-plugin: 1.2: exec"

После этого ваш nbactions.xml должен иметь тег действия, который будет выглядеть следующим образом:

    <action>
        <actionName>run.single.main</actionName>
        <goals>
            <goal>process-classes</goal>
            <goal>org.codehaus.mojo:exec-maven-plugin:1.2:exec</goal>
        </goals>
        <properties>
            <exec.classpathScope>${classPathScope}</exec.classpathScope>                
            <exec.args>-Djava.library.path="${project.build.directory}/lib" -classpath %classpath ${packageClassName}</exec.args>
            <exec.executable>java</exec.executable>
        </properties>
    </action>
    <action>
        <actionName>debug.single.main</actionName>
        <goals>
            <goal>process-classes</goal>
            <goal>org.codehaus.mojo:exec-maven-plugin:1.2:exec</goal>
        </goals>
        <properties>
            <exec.classpathScope>${classPathScope}</exec.classpathScope>
            <exec.args>-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=${jpda.address} -classpath %classpath ${packageClassName}</exec.args>
            <jpda.listen>true</jpda.listen>
            <jpda.stopclass>${packageClassName}</jpda.stopclass>
            <exec.executable>java</exec.executable>
        </properties>
    </action>  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...