728x90

 

 

에러메세지

Could not resolve all files for configuration ':classpath'.

Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.0.6.

Required by: project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.0.6

No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.6 was found.

The consumer was configured to find a runtime of a library compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '7.6.1'

 

 

 

사용 프로그램 & 버젼, filePath 등 환경

IntelliJ 2023 community

springboot 3.0.6

Gradle 7.6.1

 

 

발생날짜

23.06.02

 

 

상황

김영한 스프링1 입문 섹션1 빌드 강의 따라하다 발생

cmd에서 그래들 빌드 중 발생

 

 

에러 원인

gradle에서 자동으로 환경변수의 JAVA_HOME을 잡는데 부트3이상이면 17이상을 써야하나 현재 JAVA_HOME은 1.8 세팅이라 에러 발생

 

 

해결 방법

gradlew.bat 파일에서 @rem Find java.exe과 :findJavaFromJavaHome 쪽 환경변수 경로를 바꿔준다

8버젼의 환경변수 JAVA_HOME과 별도로 17버젼의 환경변수를 새로 JAVA_HOME_17로 만들고 그래들 안에서 JAVA_HOME으로 잡혀 있는 것을 JAVA_HOME_17 변경함

 

코드


@rem Find java.exe
if defined JAVA_HOME_17 goto findJavaFromJavaHome

...


:findJavaFromJavaHome
set JAVA_HOME_17=%JAVA_HOME_17:"=%
set JAVA_EXE=%JAVA_HOME_17%/bin/java.exe

 

 

 

728x90
반응형
728x90

 

1)기본 생성자 생성

public Template[] {}

 

2)public static SqlSession getSqlSession() 메소드 생성

 

3) SqlSession session = null;

 

4)MyBatis 설정파일 읽어오기

InputStream으로 마이바티스 환경설정 파일 mybatis-config.xml 로드

InputStream stream = Resources.getResourceAsStream("/mybatis-config.xml");

인풋스트림이 스트림이니 getResource할 때 AsStream으로 읽어와라는 의미

Resources.은 클래스임. 대문자 시작은 클래스.

Resources라는 클래스를 이용해서 resources폴더에 접근할 수 있게 되는 것

 

5) SqlSessionFactoryBuilder 클래스(객체) 생성

 

 

6)SqlSessionFactory 클래스(객체) 생성

5번에서 생성한 SqlSessionFactoryBuilder에 4번에서 로드한 mybatis-config.xml을 .bulid()로 연결

InputStream stream = Resources.getResourceAsStream("/mybatis-config.xml");

SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
SqlSessionFactory ssf = **ssfb.build(stream)**;
session = ssf.openSession(false); // false : 자동 커밋 하지않겠다는 의미 // 이중안전장치로 false 세팅함

 

 

7) SqlSession에 여태 생성하고 받아온 모든 데이터 넣기

SqlSessionFactory에 담아둔 설정파일 데이터와 함께 openSession()을 생성하면서 SqlSession 변수인 session에 넣어준다

InputStream stream = Resources.getResourceAsStream("/mybatis-config.xml");

SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder(); // 객체생성
SqlSessionFactory ssf = ssfb.build(stream); // 생성한 SqlSessionFactoryBuilder 객체(클래스)와 InputStream으로 읽어온 mybatis-config.xml
**session** = ssf.**openSession**(false);

 

※ close, commit, rollback 메소드는 안써도 MyBatis에서 처리함

 

 

전체코드

package common;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class Template {
	
	public Template() {} // 기본 생성자
	
	public static SqlSession getSqlSession() {
		
		
		SqlSession session = null;
		
			try {
				// MyBatis 설정파일 읽어오기
				InputStream stream = Resources.getResourceAsStream("/mybatis-config.xml");
				
				SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder(); // 객체생성
				SqlSessionFactory ssf = ssfb.build(stream); // 생성한 SqlSessionFactoryBuilder 객체(클래스)와 InputStream으로 읽어온 mybatis-config.xml
				session = ssf.openSession(false); // false : 자동 커밋 하지않겠다는 의미 // 이중안전장치로 false 세팅함
				// * 위의 세줄 한줄로 단축 가능

				// close, commit, rollback 메소드는 안써도 마이바티스에서 처리해줌
				
			} catch (IOException e) {
				e.printStackTrace();
			}
			return session;
	}

	
}

 

728x90
반응형
728x90

빌드(Build)

빌드가 왜 필요한지 먼저 알아보자

아래는 개발자들의 프로그래밍 작업화면이다

개발자들이 작업하는 코드들은 양이 엄청나서 여러 폴더들도 이루어져 작동하게 된다

일반적으로 수십,수백개가 넘는 폴더와 파일들로 하나의 프로그래밍이 완성된다

직접 작성한 소스코드, 라이브러리, 이미지파일, 기타 프로그램에 필요한 파일들로 구성된다

완성된 프로그램을 출시할 때는, 이 파일들을 날 것 그대로가 아닌 포장해서 내보내게 되는데 이를 빌드라고 한다

 

빌드하는 목적

윈도우확장자인 .exe파일처럼 파일 하나로 제공하기 위해서

프로그래밍 코드들을 압축해서 전체 크기를 줄이기 위해서

다른 사람들이 코드를 못알아보도록 난독화 하기 위해서

 

컴파일 언어의 경우 빌드에 컴파일 작업이 포함되어있다

프로그래밍 언어마다 소프트웨어 종류마다 빌드 결과가 다양하다

파일 하나로 압축되기도 하고, 많은 수의 파일들이 적은 수의 파일들로 정리되기도 하고, 파일들의 형식과 내용만 바뀌는 경우도 있다

 

빌드란?

작업하는 프로젝트 파일들을 출시하기 적합한 형태로 포장하는 일

 


 

 

배포

코딩해서 빌드한 결과물을 유저에게 전달하는 과정

 

유저들이 다운 받을 수 있는 곳에 업로드해야 하는데

데스크탑이면, 네이버, 공식홈페이지 등등

모바일이면, 구글 플레이스토어, 애플 앱스토어 등

웹사이트라면, 작업물을 서버에 올리고 실행해서 해당 사이트 도메인에 유저들이 접근할 수 있게 하는 작업

 

 

출처

https://www.youtube.com/watch?v=GYmuQJiPeM4

 

728x90
반응형
728x90

이클립스(Eclipse) 설치 & 사용법

 

이클립스 세팅

인코딩 방식 UTF-8로 변환해두기

안하면 파일 다 깨져서 난리남...

https://parkjye.tistory.com/35

 

이클립스(Eclipse) 종류

EE(기업용),자바개발자용,안드로이드 개발자용, c/c++개발자용

 

 

디버깅 degguing

프로그램 에러를 잡는

 

 

<이클립스 사용법>

오른쪽 동그라미 (perspective)에서 화면을 다른 기능을 있게 전환가능

 - 디버그, java, git 등등

 

 

뷰마다 타이틀 줄을 더블클릭하면 큰화면으로 전환되고, 드래그로 위치도 변경가능

또한, 프로그램 상단에 windows탭에서 view 열고 닫고 설정 가능

 

 

이클립스에서는 프로그램을 프로젝트 단위로 작성함. 새로운 프로젝트를 생성해야함

 

 

 

java 프로젝트 생성 - class 생성

  • class 첫글자는 무조건 대문자로

 

 

이클립스에서는, 파일을 저장할 때마다 자동적으로 컴파일 해주기에 따로 컴파일 필요x

아래의 화면이 이와 관련된 것이고, 파일이 저장되지 않았고 따라서 컴파일도 되지 않았으므로 묻는

 

 

*이클립스(Eclipse) 자동 컴파일 기능

프로그램 상단 Project - Build automatically(자동 빌드(=자동 컴파일))

이게 체크 되어있는 것은 파일을 저장할 자동으로 컴파일해라는 의미

 

빌드 본래의 의미는 소스파일로부터 프로그램을 만들어내는 과정을 의미

 

간단한 자바프로그램을 만드는거고 다른 과정없이 단순히 컴파일만 하면 되니 지금은 build automatically 컴파일을 자동으로 하라는 뜻으로 이해하면

 

 

 

왼쪽에 package explorer에는 현재 Hello.java파일만 보이고 class파일이 안보이는 것은,

package explorer 뷰는 프로젝트를 소스파일 위주로 보여주기 때문

 

이렇기에 클래스파일 생성여부를 확인하려면,

탐색기로 보거나 네비게이터 뷰를 열어서 확인 (상단 window - show view - navigator클릭. navigator창이 새로생김)

 

네비게이터 뷰는 윈도우 탐색기처럼 모든 파일을 보여줌

.으로 시작하는 .classpath .project 같은 파일은 이클립스에서 관리용 파일로 만든 것이니 만지지 않는게 좋다

 

 

 

자바 이클립스 에러 체크 방법

 

 

 

파일이 수정됬지만 아직 저장되지 않았다는 의미

 

 

<이클립스에서 자바 프로그램 작성하는 순서>

 

1.프로젝트 생성

 메뉴 file - new - java project

 

2.클래스 생성

 project 이름 위에서 우클릭 - new - Class

 

3.소스 파일 작성 저장(자동 컴파일됨)

 

4.실행

 메뉴 run - run

 

 

 

Build 관련 메뉴 설명

 

 

Build?

소스파일(*.java)로부터 프로그램을 만들어내는 과정

 

  • Build All : workspace의 모든 프로젝트를 빌드
  • Build Project : 현재 프로젝트만 빌드(단, 변경된 소스파일나 새로 작성된 소스파일만 컴파일함)
  • Build Automatically : 소스파일 변경 후, 저장할 때마다 자동 컴파일
  • Clean : 이전 빌드의 정보를 모두 삭제(모든 소스파일을 새로 컴파일)                                                               - 간혹가다  이유없이 프로그램이  실행되지 않을 경우 clean하고 하면 해결되는 경우가 있음

 

 

728x90
반응형

+ Recent posts