Командная строка знатока

Я, вероятно, не использовал бы перечисление для этого своего рода вещь, где значения могут быть объединены вместе, более обычно перечисления являются взаимоисключающими состояниями.

, Но какой бы ни метод Вы используете, для создания этого более ясным, что это значения, которые являются битами, которые могут быть объединены вместе, используйте этот синтаксис для фактических значений вместо этого:

#define X_NEW      (1 << 0)
#define X_DELETED  (1 << 1)
#define X_MODIFIED (1 << 2)
#define X_EXISTING (1 << 3)

Используя сдвиг влево там помогает указать, что каждое значение предназначается, чтобы быть единственным битом, менее вероятно, что позже кто-то сделал бы что-то не так, любят, добавляет новое значение и присваивает ему что-то значение 9.

7
задан Rich Seller 15 September 2009 в 17:10
поделиться

1 ответ

В последних версиях Maven вы можете активировать отладчик, запустив mvnDebug вместо mvn , файл mvnDebug bat / sh устанавливает MVN__DEBUG_OPTS и передает их в файл java.exe. Передаваемые значения:

set MAVEN_DEBUG_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000

Если этого недостаточно, это может сработать (обратите внимание, что я еще не тестировал это, я обновлю его, когда буду). Maven читает свойства с префиксом "env". из среды, вы можете установить переменные среды, добавив их в качестве префикса. т.е.:

<profile>
  <id>dev</id>
  <properties>
    <env.MAVEN_OPTS>-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000<env.MAVEN_OPTS>
  </properties>
</profile>

Обновление: плагин surefire позволяет указать системные свойства , которые будут использоваться во время выполнения теста. Конфигурация следующая:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.4.2</version>
  <configuration>
    <systemProperties>
      <property>
        <name>propertyName</name>
        <value>propertyValue</value>
      </property>
    </systemProperties>
  </configuration>
</plugin>

Если ничего из этого не работает для вас, можно написать небольшой плагин, настроенный в вашем профиле, который привязывается к фазе инициализации и устанавливает ваши переменные. Плагин будет иметь такую ​​конфигурацию:

<plugin>
  <groupId>name.seller.rich</groupId>
  <artifactId>maven-environment-plugin</artifactId>
  <version>0.0.1</version>
  <executions>
    <execution>
      <id>set-properties</id>
      <phase>initialize</phase>
      <goals>
        <goal>set-properties</goal>
      </goals>
    </execution>
  </executions>                              
  <configuration>
    <properties>
      <env.MAVEN_OPTS>-Xdebug -Xnoagent -Djava.compiler=NONE 
          -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000<env.MAVEN_OPTS>
    </properties>
  </configuration>
</plugin>

во время выполнения плагин будет устанавливать каждое переданное свойство с помощью System.setProperty (). Если первые два не подходят или не работают, это должно решить вашу проблему.

11
ответ дан 6 December 2019 в 23:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: