환경

spring boot 2.5.1 기준 ( 하위 버전도 동일한 문제 있음)

gradle 혹은 maven 만 단일하게 사용하면 문제가 없습니다.
같은 spring boot 버전을 사용하는 gradle, mavne 프로젝트가 있는 경우 발생합니다.

gradle 에서 .m2 저장소를 인식하면서 필요한 jar 파일을 로컬 maven 저장소에 있으면 다운로드하지 않습니다.

maven에서 querydsl용 jar 경로는 다음과 같습니다.

.m2/repository/com/querydsl/querydsl-apt/4.4.0/querydsl-apt-4.4.0.jar

gradle의 설정은

implementation 'com.querydsl:querydsl-jpa'  
annotationProcessor("com.querydsl:querydsl-apt:${dependencyManagement.importedProperties\['querydsl.version'\]}:jpa")  
annotationProcessor("jakarta.persistence:jakarta.persistence-api")  
annotationProcessor("jakarta.annotation:jakarta.annotation-api")

빌드를 해보면 querydsl-apt-4.4.0-jpa.jar 파일을 찾을 수 없다고 나옵니다.

.m2/repository/com/querydsl/querydsl-apt/4.4.0/ 경로를
.m2/repository/com/querydsl/querydsl-apt/4.4.0_/ 등으로 리네임 하고
gradle 빌드를 하면
gradle\caches\modules-2\files-2.1\com.querydsl\querydsl-apt\4.4.0
경로에 querydsl-apt-4.4.0-jpa.jar 파일을 다운로드합니다.

이 파일을

.m2/repository/com/querydsl/querydsl-apt/4.4.0/ 에 복사해주면

gradle과 maven에서 동시에 querydsl 사용 시 문제없이 빌드가 됩니다.

'지식창고 > Java' 카테고리의 다른 글

querydsl 설정 gradle, maven 동시 사용 문제  (0) 2021.06.11
queryDSL lombok gradle 5.0  (4) 2019.01.02
eclipse workspace 삭제  (0) 2018.12.05
eclipse 설치한 플러그인  (0) 2018.04.10
gradle 유용한 플러그인  (0) 2016.07.25
eclipse neon으로 옮기면서 삽질  (0) 2016.07.15

windows 10 20h1 에서 wsl2 docker를 사용중인데

8081포트에 bind 하는 프로그램이 10013 bind 에러를 내면서 실행이 되지 않았다.

포트를 사용중인 프로그램은 분명 없었는데


docker에서 elk를 테스트 해보려고 구동 했는데 역시 실행되지 않았다.

Creating network "docker-elk_elk" with driver "bridge"
Creating docker-elk_elasticsearch_1 ... error

ERROR: for docker-elk_elasticsearch_1  Cannot start service elasticsearch: Ports are not available: listen tcp 0.0.0.0:9200: bind: An attempt was made to access a socket in a way forbidden by its access permissions.

ERROR: for elasticsearch  Cannot start service elasticsearch: Ports are not available: listen tcp 0.0.0.0:9200: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
ERROR: Encountered errors while bringing up the project.

intellij를 실행 했는데 bind 오류가 발생하면서 실행되지 않았다.

아무리 포트를 사용중인 프로그램을 찾아봐도 포트는 사용중이지 않았다.


intellij 오류창의 링크를 접속해보니 나와 같은 문제점이 있는 분이 있었고 그 아래 답변이 하나 있었다.


https://intellij-support.jetbrains.com/hc/en-us/articles/360007568559


나와 동일한 오류를 겪고 계신분의 덧글

On Windows "netsh winsock reset" in the Administrator console followed by the reboot should help. Also try disabling the antivirus/firewall and verify that the network configuration is correct.

관리자 창을 띄우고  명령을 실행하고 재부팅 하니 intellij와 개발 중인 프로그램은 실행되었다.

다만 도커는 아직도 안된다. 이건 조금 더 삽질을 해봐야 할 것 같다.

It's very uncommon when all 50 ports in this range are not available on the system.

Please provide the output from the following command in the Administrator console:

netsh interface ipv4 show excludedportrange protocol=tcp

Does it list all the ports in the range used by IntelliJ IDEA?

One of the possible reasons is a network misconfiguration caused by the Hyper-V. You can try to temporary disable Hyper-V Windows feature and see if it helps. Enabling it back should not cause the same problem again.

netsh 명령을 해보니 포트 목록에 9200이 포함되어 있다. hyper-v 관련 문제로 보인다.

그아래 다른 덧글을 좀 더 살펴보니 hyper-v가 예약한 포트 목록 때문으로 보인다고 한다.

관리자 콘솔에서 다음 명령 실행


netsh int ipv4 set dynamicport tcp start=49152 num=16383
netsh int ipv4 set dynamicport udp start=49152 num=16383

만세!! 오늘의 삽질 끝!


github의 관련 이슈
https://github.com/docker/for-win/issues/3171



vcpkg 2020.04를 사용중이였는데


2020.06 이 릴리즈되어서 업데이트를 했다.

그런데 프로젝트 빌드가 실패해서 이슈를 올리고 답변을 받은 내용을 정리 하자면


static triplet을 사용하는 방법이 .vcxproj 에 직접 수정을 해야 하는 방식에서

프로젝트 설정으로 변경되었다는 것이다.




내경우엔 x86-windows-static-md를 사용해야 해서 위와 같이 설정을 했다.

Triplet의 기본값은 $(VcpkgPlatformTarget)-$(VcpkgOSTarget) 이며

static 만 사용할 경우 Use Static libraries 를 예 로 설정 하면 된다.


.vcxproj 를 열여보면 다음과 같이 설정이 추가되어 있는것을 확인 할 수 있다.

  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <VcpkgEnabled>true</VcpkgEnabled>
    <VcpkgUserTriplet>$(VcpkgPlatformTarget)-$(VcpkgOSTarget)-static-md</VcpkgUserTriplet>
  </PropertyGroup>


ps.

신규 업데이트가 있는것으로 착각 하고 git pull 로 업데이트 했는데

UI가 달라졌다.