source

maven을 사용하는 경우 보통 java 또는 resources 아래에 log4j.properties를 넣습니까?

factcode 2022. 10. 14. 22:37
반응형

maven을 사용하는 경우 보통 java 또는 resources 아래에 log4j.properties를 넣습니까?

기존 Maven 디렉토리를 사용할 경우 log4j.properties 파일을 어디에 저장해야 합니까?

src/main/resources 이것을 위한 "표준 배치"입니다.

업데이트: 위의 답변은 질문에 대한 답변이지만 최선의 해결책은 아닙니다.다른 답변과 코멘트를 확인해 주세요.jar와 함께 자신의 로깅 속성을 발송하지 않고 클라이언트(앱 서버, 스테이지 환경 등)에 맡겨 원하는 로깅을 구성할 수 있습니다.따라서, 그것을 넣는 거src/test/resources이치노

주의: 구체적인 로그 설정은 클라이언트/사용자에게 맡기면 교환을 검토해야 합니다.log4jslf4j당신의 앱에서.

그냥 넣기만 하면 돼src/main/resources경우 JAR, JAR, JAR이 있습니다.log4j.properties파일 내에서는 로깅을 구성할 수 있는 초기 지점이 손실됩니다.

는 보통 in는는에 넣어요.src/main/resources하다

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <targetPath>${project.build.directory}</targetPath>
            <includes>
                <include>log4j.properties</include>
            </includes>
        </resource>
    </resources>
</build>

인식하기 를 클래스해야 합니다.MAVEN-assembly-plugin 을티 。할 수 이 경우 JAR의 폴더는 JAR의 JAR을 할 수 있습니다.Class-Path하다

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <mainClass>com.your-package.Main</mainClass>
            </manifest>
            <manifestEntries>
                <Class-Path>.</Class-Path>
            </manifestEntries>
        </archive>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id> <!-- this is used for inheritance merges -->
            <phase>package</phase> <!-- bind to the packaging phase -->
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

이제 log4j.properties 파일이 JAR 파일 바로 옆에 있으며 개별적으로 구성할 수 있습니다.

응용 하려면 Eclipse를 하십시오.resources: "Configuration" classpath "" 를 합니다.Run->Run Configurations...->Java Application->New 고르다Classpath " ", " 를 선택합니다.Advanced해 주세요.src/resources디렉토리로 이동합니다.

「 마이닝 「데이터 마이닝」이라고 하는 .src/main/resources전형적인 장소입니다.

Google 코드 검색 결과:

  • src/main/resources/log4j.properties: 4877
  • src/main/java/log4j.properties: 215

프로젝트 초기화에 사용되는 리소스는 src/main/resources 폴더에 넣는 것이 좋습니다.빌드 중에 이러한 리소스를 로드할 수 있도록 하려면 maven 프로젝트의 pom.xml에 빌드 리소스로 엔트리를 추가하면 됩니다.

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering> 
        </resource>
    </resources>
</build> 

다른 .properties 파일도 초기화에 사용되는 폴더에 보관할 수 있습니다.일부 변수를 리소스 폴더의 속성 파일에 두고 프로파일 필터 속성 파일에서 채우려는 경우 필터링이 true로 설정됩니다. 이 속성 파일은 프로파일로 설정된 src/main/filters에 유지되지만 이는 모두 다른 사용 사례입니다.일단은 무시하셔도 됩니다.

이 플러그인은 뛰어난 리소스플러그인입니다.다른 섹션도 참조할 수 있습니다.

리소스 파일을 다른 위치에 저장하는 것이 가장 좋은 솔루션이 아닌 경우:

<build>
  <resources>
    <resource>
      <directory>src/main/java</directory>
      <excludes>
        <exclude>**/*.java</exclude>
      </excludes>
    </resource>
  </resources>
<build>

예를 들어 리소스 파일(예: jaxb.properties)이 Java 클래스와 함께 패키지 내부 깊숙이 들어가는 경우가 있습니다.

src/main/resources에서 log4j.properties 또는 log4j.xml 파일을 찾을 수 없는 경우 이 PropertyConfigurator.configure("log4j.xml")를 사용합니다.

   PropertyConfigurator.configure("log4j.xml");
   Logger logger = LoggerFactory.getLogger(MyClass.class);
   logger.error(message);

빌드 태그 내부의 pom.xml 리소스 태그에서 다음 코드를 추가합니다.따라서 리소스 태그는 pom.xml 빌드 태그 안에 있어야 합니다.

<build>
    <resources>
        <resource>
            <directory>src/main/java/resources</directory>
                <filtering>true</filtering> 
         </resource>
     </resources>
<build/>

언급URL : https://stackoverflow.com/questions/5132389/if-using-maven-usually-you-put-log4j-properties-under-java-or-resources

반응형