merge: origin/main의 디자인 수정 내용 반영
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
<%@ page import="com.pms.common.utils.*"%>
|
||||
<%@ page import="java.util.*"%>
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||
<%@include file="/init.jsp"%>
|
||||
<%@include file="/init_new.jsp"%>
|
||||
<%
|
||||
PersonBean person = (PersonBean) session.getAttribute(Constants.PERSON_BEAN);
|
||||
String userId = CommonUtils.checkNull(person.getUserId());
|
||||
@@ -888,7 +888,7 @@
|
||||
<input type="hidden" name="serial_no_list" id="serial_no_list" value="">
|
||||
|
||||
<section class="business_popup_min_width">
|
||||
<div class="plm_menu_named">
|
||||
<div class="plm_menu_name">
|
||||
<h2>
|
||||
<span>영업관리_견적관리_견적요청등록</span>
|
||||
</h2>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<%@ page import="com.pms.common.utils.*"%>
|
||||
<%@ page import="java.util.*" %>
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||
<%@include file= "/init.jsp" %>
|
||||
<%@include file= "/init_new.jsp" %>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
|
||||
@@ -126,12 +126,12 @@ $(function(){
|
||||
$(".menu").hover(
|
||||
function() {
|
||||
if (!$(this).hasClass('menu_on')) {
|
||||
$(this).css('background-color', '#E08550');
|
||||
$(this).css('background-color', '#003399');
|
||||
}
|
||||
},
|
||||
function() {
|
||||
if (!$(this).hasClass('menu_on')) {
|
||||
$(this).css('background-color', '#F29661');
|
||||
$(this).css('background-color', '#0011ff');
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
@@ -151,6 +151,7 @@ function fn_alert(){
|
||||
}
|
||||
function fn_initMenuArea(){
|
||||
$("#menu").empty();
|
||||
$('#forced-menu').remove(); // 강제로 추가된 메뉴도 제거
|
||||
}
|
||||
|
||||
function fnm_changeContentsLocation(url, menuObjId, obj){
|
||||
@@ -179,12 +180,10 @@ function fnm_changeContentsLocation(url, menuObjId, obj){
|
||||
|
||||
function add_menu(objid, subMenuObjid, onlyViewMenu){
|
||||
//Swal.fire("add_menu : " + objid + ":" + subMenuObjid + ":" + onlyViewMenu);
|
||||
console.log("=== add_menu 함수 시작 ===");
|
||||
console.log("Parameters:", {objid: objid, subMenuObjid: subMenuObjid, onlyViewMenu: onlyViewMenu});
|
||||
|
||||
var menu ="";
|
||||
if(fnc_isNotEmpty(objid)){
|
||||
console.log("objid가 비어있지 않음, AJAX 호출 시작");
|
||||
//console.log("objid가 비어있지 않음, AJAX 호출 시작");
|
||||
$.ajax({
|
||||
url:"/main/getmenu.do",
|
||||
type:"POST",
|
||||
@@ -192,9 +191,9 @@ function add_menu(objid, subMenuObjid, onlyViewMenu){
|
||||
dataType:"json",
|
||||
async:false,
|
||||
success:function(data){
|
||||
console.log("AJAX 응답 성공:", data);
|
||||
//console.log("AJAX 응답 성공:", data);
|
||||
if(data.RESULT && data.RESULT.length>0){
|
||||
console.log("메뉴 아이템 개수:", data.RESULT.length);
|
||||
//console.log("메뉴 아이템 개수:", data.RESULT.length);
|
||||
for(var i=0;i<data.RESULT.length;i++){
|
||||
//menu +="<div class='main_menu' menuObjId="+data.RESULT[i].OBJID+"><span><a href='javascript:fnm_changeContentsLocation(\""+data.RESULT[i].MENU_URL+"\",\""+data.RESULT[i].OBJID+"\")' url='"+data.RESULT[i].MENU_URL+"' objType='menuObj' menuObjId='"+data.RESULT[i].OBJID+"'>"+data.RESULT[i].MENU_NAME_KOR+"</a></span></div>";
|
||||
/*
|
||||
@@ -216,28 +215,36 @@ function add_menu(objid, subMenuObjid, onlyViewMenu){
|
||||
menu +="<div class='"+menuClass+"' menuObjId="+data.RESULT[i].OBJID+" parentObjid="+data.RESULT[i].PARENT_OBJ_ID+"><span><a href='javascript:fnm_changeContentsLocation(\""+data.RESULT[i].MENU_URL+"\",\""+data.RESULT[i].OBJID+"\", this)' class='smenu menus_off' url='"+data.RESULT[i].MENU_URL+"' objType='menuObj' menuObjId='"+data.RESULT[i].OBJID+"'>"+data.RESULT[i].MENU_NAME_KOR+"</a></span></div>";
|
||||
}
|
||||
|
||||
console.log("메뉴 생성:", data.RESULT[i].MENU_NAME_KOR, "Level:", lev);
|
||||
// console.log("메뉴 생성:", data.RESULT[i].MENU_NAME_KOR, "Level:", lev);
|
||||
//menu +="<div class='main_menu' menuObjId="+data.RESULT[i].OBJID+"><span><a href='' class='smenu menus_off' url='"+data.RESULT[i].MENU_URL+"' objType='menuObj' menuObjId='"+data.RESULT[i].OBJID+"'>"+data.RESULT[i].MENU_NAME_KOR+"</a></span></div>";
|
||||
//}
|
||||
}
|
||||
}
|
||||
console.log("생성된 메뉴 HTML 길이:", menu.length);
|
||||
console.log("생성된 메뉴 HTML:", menu.substring(0, 200) + "...");
|
||||
//console.log("생성된 메뉴 HTML 길이:", menu.length);
|
||||
//console.log("생성된 메뉴 HTML:", menu.substring(0, 200) + "...");
|
||||
},
|
||||
error: function(jqxhr, status, error){
|
||||
console.log("AJAX 오류:", error);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
console.log("objid가 비어있음, sel_menu 호출");
|
||||
//console.log("objid가 비어있음, sel_menu 호출");
|
||||
}
|
||||
|
||||
console.log("DOM 추가 전 - 메뉴 HTML 길이:", menu.length);
|
||||
|
||||
// 기존 메뉴 완전히 제거
|
||||
$("#menu").empty();
|
||||
$('#forced-menu').remove(); // 강제로 추가된 메뉴도 제거
|
||||
|
||||
$('#menu').addClass('clickable');
|
||||
$("#menu").append(menu);
|
||||
|
||||
// 메뉴를 강제로 표시 (원래 위치에 맞게)
|
||||
if(menu.length > 0) {
|
||||
// 기존 강제 메뉴가 있다면 제거
|
||||
$('#forced-menu').remove();
|
||||
|
||||
// 기존 메뉴 프레임의 위치 정보 가져오기
|
||||
var menuFrame = window.frameElement;
|
||||
var frameRect = menuFrame ? menuFrame.getBoundingClientRect() : {left: 0, top: 0};
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<%@ page import="com.pms.common.utils.*"%>
|
||||
<%@ page import="java.util.*" %>
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||
<%@include file= "/init.jsp" %>
|
||||
<%@include file= "/init_new.jsp" %>
|
||||
<%
|
||||
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
|
||||
String userId = CommonUtils.checkNull(person.getUserId());
|
||||
|
||||
1075
WebContent/css/basic_new.css
Normal file
1075
WebContent/css/basic_new.css
Normal file
File diff suppressed because it is too large
Load Diff
165
WebContent/init_new.jsp
Normal file
165
WebContent/init_new.jsp
Normal file
@@ -0,0 +1,165 @@
|
||||
<%@page import="com.pms.common.utils.*"%>
|
||||
<%@page import="com.pms.common.bean.PersonBean" %>
|
||||
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
||||
|
||||
<%
|
||||
boolean isLoggedIn = SessionManager.hasSession(session);
|
||||
boolean isAdmin = false;
|
||||
|
||||
String connectUserId = "";
|
||||
String connectUserDeptCode = "";
|
||||
String connectUserName = "";
|
||||
String connectUserDeptName = "";
|
||||
String partnerCd = "";
|
||||
if(!isLoggedIn){
|
||||
out.write("<script>Swal.fire('session was destroyed.');</script>");
|
||||
out.write("<script>top.location.href='/index.do';</script>");
|
||||
}else{
|
||||
PersonBean initPerson = null;
|
||||
initPerson = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
|
||||
connectUserId = CommonUtils.checkNull(initPerson.getUserId());
|
||||
connectUserDeptCode = CommonUtils.checkNull(initPerson.getDeptCode());
|
||||
connectUserName = CommonUtils.checkNull(initPerson.getUserName());
|
||||
connectUserDeptName = CommonUtils.checkNull(initPerson.getDeptName());
|
||||
partnerCd = CommonUtils.checkNull(initPerson.getPartner_cd());
|
||||
|
||||
if("plm_admin".equals(connectUserId)){
|
||||
isAdmin = true;
|
||||
}
|
||||
|
||||
}
|
||||
pageContext.setAttribute("newLineChar", "\n");
|
||||
%>
|
||||
<c:set var="connectUserId" value="<%=connectUserId %>" />
|
||||
<c:set var="connectUserDeptCode" value="<%=connectUserDeptCode %>" />
|
||||
<c:set var="connectUserName" value="<%=connectUserName %>" />
|
||||
<c:set var="connectUserDeptName" value="<%=connectUserDeptName %>" />
|
||||
<c:set var="partnerCd" value="<%=partnerCd %>" />
|
||||
|
||||
<c:set var="isAdmin" value="<%=isAdmin%>" />
|
||||
<c:set var="menuObjId" value="${empty param.menuObjId?'':param.menuObjId}" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
|
||||
<link rel="stylesheet" href="/css/select2.css">
|
||||
<!-- //basic -->
|
||||
<link rel="stylesheet" href="/css/basic_new.css">
|
||||
<!-- <script src="/js/jquery-1.11.3.min.js"></script> -->
|
||||
<script src="/js/jquery-2.1.4.min.js"></script>
|
||||
<script src="/js/html5shiv.js"></script>
|
||||
|
||||
<!-- //Gantt Chart -->
|
||||
<!-- <link rel="stylesheet" href="/js/gantt/jsgantt.css" type="text/css">
|
||||
<script type="text/javascript" src="/js/gantt/jsgantt.js"></script> -->
|
||||
|
||||
<!-- //highchart -->
|
||||
<!-- <script type="text/javascript" src="/js/highcharts-custom.js" ></script> -->
|
||||
<script type="text/javascript" src="/js/highcharts.js" ></script>
|
||||
<script type="text/javascript" src="/js/data.js" ></script>
|
||||
<script type="text/javascript" src="/js/drilldown.js" ></script>
|
||||
<script type="text/javascript" src="/js/bullet.js" ></script>
|
||||
|
||||
<!-- //datepicker -->
|
||||
<link rel="stylesheet" href="/css/jquery-ui-1.10.2.custom.css" type="text/css">
|
||||
<link rel="stylesheet" href="/css/jquery-ui.css" type="text/css">
|
||||
<link rel="stylesheet" href="/css/jquery-ui.min.css" type="text/css">
|
||||
<link rel="stylesheet" href="/css/jquery-ui.structure.css" type="text/css">
|
||||
<link rel="stylesheet" href="/css/jquery-ui.structure.min.css" type="text/css">
|
||||
<link rel="stylesheet" href="/css/jquery-ui.theme.css" type="text/css">
|
||||
<link rel="stylesheet" href="/css/jquery-ui.theme.min.css" type="text/css">
|
||||
|
||||
<script type="text/javascript" src="/js/ui/jquery-ui.js" ></script>
|
||||
<script type="text/javascript" src="/js/ui/jquery.ui.core.js" ></script>
|
||||
<script type="text/javascript" src="/js/ui/jquery.ui.datepicker.js" ></script>
|
||||
<script type="text/javascript" src="/js/ui/jquery.ui.datepicker-ko.js" ></script>
|
||||
<script type="text/javascript" src="/js/ui/jquery.ui.widget.js" ></script>
|
||||
<script type="text/javascript" src="/js/ui/jquery.ui.button.js" ></script>
|
||||
<script type="text/javascript" src="/js/common.js" ></script>
|
||||
|
||||
<!-- //month picker -->
|
||||
<script type="text/javascript" src="/js/jquery.mtz.monthpicker.js" ></script>
|
||||
|
||||
<!-- //ppt viewer -->
|
||||
<script type="text/javascript" src="/js/jquery.gdocsviewer.js" ></script>
|
||||
<script type="text/javascript" src="/js/select2.js" ></script>
|
||||
<script type="text/javascript" src="/js/sweetalert2.js" ></script>
|
||||
|
||||
<!-- ì¤ë§í¸ìëí° -->
|
||||
<script type="text/javascript" src="/SE2/js/HuskyEZCreator.js" charset="utf-8"></script>
|
||||
|
||||
<!-- //profitlossTotalPopUp -->
|
||||
<link rel="stylesheet" href="/css/profitlossTotalPopUp.css">
|
||||
|
||||
<link href="/css/tabulator/tabulator.min.css" rel="stylesheet">
|
||||
<script type="text/javascript" src="/js/tabulator/tabulator.min.js"></script>
|
||||
<script src="/js/xlsx/xlsx.full.min.js"></script>
|
||||
<script src="/js/xlsx/exceljs.min.js"></script>
|
||||
<script src="/js/xlsx/FileSaver.min.js"></script>
|
||||
|
||||
|
||||
<script>
|
||||
$(function(){
|
||||
|
||||
function pageAuthController(){
|
||||
|
||||
if("" != '${menuObjId}'){
|
||||
$.ajax({
|
||||
type : "POST",
|
||||
url : "/common/getPageAuthInfo.do",
|
||||
data: {"menuObjId":'${menuObjId}'},
|
||||
dataType:"json",
|
||||
success:function(data){
|
||||
if(data != null){
|
||||
if(Number(data.CREATE_AUTH_CNT) == 0){
|
||||
$(".create").hide();
|
||||
}
|
||||
if(Number(data.READ_AUTH_CNT) == 0){
|
||||
$(".read").hide();
|
||||
}
|
||||
if(Number(data.update_AUTH_CNT) == 0){
|
||||
$(".update").hide();
|
||||
}
|
||||
if(Number(data.DELETE_AUTH_CNT) == 0){
|
||||
$(".delete").hide();
|
||||
}
|
||||
};
|
||||
}
|
||||
,error: function(jqxhr, status, error){
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
pageAuthController();
|
||||
|
||||
fnc_changePaginationAndTotalCountArea();
|
||||
|
||||
// 페이지 로딩 완료 후 로딩 화면 숨기기
|
||||
$(window).on('load', function() {
|
||||
$(".loading-container-wrap").hide();
|
||||
});
|
||||
|
||||
// 문서 준비 완료 후에도 로딩 화면 숨기기 (백업)
|
||||
setTimeout(function() {
|
||||
$(".loading-container-wrap").hide();
|
||||
}, 1000);
|
||||
});
|
||||
|
||||
/*
|
||||
$(document).ready(function(){
|
||||
|
||||
fnc_changePaginationAndTotalCountArea();
|
||||
});
|
||||
*/
|
||||
|
||||
</script>
|
||||
<input type="hidden" name="menuPath" id="menuPath" value="" />
|
||||
<div class="loading-container-wrap">
|
||||
<div class="loading-container">
|
||||
<div class="loading"></div>
|
||||
<div id="loading-text">loading</div>
|
||||
</div>
|
||||
<p id="_loadingMessage"></p>
|
||||
</div>
|
||||
@@ -61,6 +61,251 @@ if ! git reset --hard origin/main; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Java 개발 환경 확인 및 설치
|
||||
echo "Checking Java development environment..."
|
||||
|
||||
# JDK 7 우선 설치 및 설정
|
||||
if ! command -v javac &> /dev/null; then
|
||||
echo "Java compiler (javac) not found. Installing OpenJDK 7..."
|
||||
|
||||
# 패키지 목록 업데이트
|
||||
apt-get update
|
||||
|
||||
# OpenJDK 7 JDK 설치 (JRE가 아닌 JDK)
|
||||
apt-get install -y openjdk-7-jdk
|
||||
|
||||
# 설치 확인
|
||||
if ! command -v javac &> /dev/null; then
|
||||
echo "Failed to install OpenJDK 7. Trying alternative installation..."
|
||||
apt-get install -y default-jdk
|
||||
|
||||
if ! command -v javac &> /dev/null; then
|
||||
echo "Failed to install Java compiler. Exiting..."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# JAVA_HOME 설정 (JDK 7 우선)
|
||||
export JAVA_HOME=""
|
||||
JDK7_PATHS=(
|
||||
"/usr/lib/jvm/java-7-openjdk-amd64"
|
||||
"/usr/lib/jvm/java-1.7.0-openjdk-amd64"
|
||||
"/usr/lib/jvm/openjdk-7-jdk"
|
||||
"/usr/lib/jvm/default-java"
|
||||
)
|
||||
|
||||
for path in "${JDK7_PATHS[@]}"; do
|
||||
if [ -d "$path" ] && [ -f "$path/bin/javac" ]; then
|
||||
export JAVA_HOME="$path"
|
||||
export PATH="$JAVA_HOME/bin:$PATH"
|
||||
echo "Set JAVA_HOME to: $JAVA_HOME"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -z "$JAVA_HOME" ]; then
|
||||
echo "Warning: Could not find JDK 7 installation directory"
|
||||
fi
|
||||
|
||||
# Java 버전 확인
|
||||
echo "Java compiler version:"
|
||||
javac -version
|
||||
echo "Java runtime version:"
|
||||
java -version
|
||||
|
||||
# Java 소스 컴파일
|
||||
echo "Compiling Java sources..."
|
||||
|
||||
# Java 컴파일을 위한 디렉토리 생성 및 기존 클래스 파일 정리
|
||||
echo "Preparing compilation directory..."
|
||||
rm -rf WebContent/WEB-INF/classes
|
||||
mkdir -p WebContent/WEB-INF/classes
|
||||
|
||||
# 클래스패스 설정 (모든 jar 파일 포함)
|
||||
CLASSPATH=""
|
||||
for jar in WebContent/WEB-INF/lib/*.jar; do
|
||||
if [ -z "$CLASSPATH" ]; then
|
||||
CLASSPATH="$jar"
|
||||
else
|
||||
CLASSPATH="$CLASSPATH:$jar"
|
||||
fi
|
||||
done
|
||||
|
||||
# JDK 7 기본 라이브러리 추가
|
||||
if [ -n "$JAVA_HOME" ]; then
|
||||
if [ -f "$JAVA_HOME/jre/lib/rt.jar" ]; then
|
||||
CLASSPATH="$CLASSPATH:$JAVA_HOME/jre/lib/rt.jar"
|
||||
echo "Added JDK 7 runtime: $JAVA_HOME/jre/lib/rt.jar"
|
||||
fi
|
||||
if [ -f "$JAVA_HOME/lib/tools.jar" ]; then
|
||||
CLASSPATH="$CLASSPATH:$JAVA_HOME/lib/tools.jar"
|
||||
echo "Added JDK 7 tools: $JAVA_HOME/lib/tools.jar"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Servlet API는 WEB-INF/lib에 있는 것을 사용 (이미 클래스패스에 포함됨)
|
||||
echo "Using Servlet API from WEB-INF/lib (javax.servlet-api-4.0.1.jar)"
|
||||
|
||||
echo "Classpath: $CLASSPATH"
|
||||
|
||||
# Java 소스 파일 찾기 및 컴파일
|
||||
if [ -d "src" ]; then
|
||||
echo "Found Java source directory: src"
|
||||
|
||||
# Java 소스 파일 목록 생성
|
||||
find src -name "*.java" > java_sources.txt
|
||||
|
||||
if [ -s java_sources.txt ]; then
|
||||
echo "Compiling Java files..."
|
||||
|
||||
# Java 컴파일 실행 (Java 7 호환성을 위해 source와 target 버전 명시)
|
||||
echo "Starting Java compilation with classpath..."
|
||||
echo "Number of Java files to compile: $(wc -l < java_sources.txt)"
|
||||
|
||||
# 컴파일 실행 및 결과 확인
|
||||
COMPILE_EXIT_CODE=0
|
||||
javac -cp "$CLASSPATH" -d WebContent/WEB-INF/classes -encoding UTF-8 -source 1.7 -target 1.7 @java_sources.txt 2>&1 | tee compile.log
|
||||
COMPILE_EXIT_CODE=${PIPESTATUS[0]}
|
||||
|
||||
if [ $COMPILE_EXIT_CODE -eq 0 ]; then
|
||||
echo "Java compilation successful!"
|
||||
|
||||
# 컴파일된 클래스 파일 수 확인
|
||||
CLASS_COUNT=$(find WebContent/WEB-INF/classes -name "*.class" | wc -l)
|
||||
echo "Successfully compiled $CLASS_COUNT class files"
|
||||
|
||||
# 컴파일된 패키지 구조 표시
|
||||
if [ $CLASS_COUNT -gt 0 ]; then
|
||||
echo "Compiled packages:"
|
||||
find WebContent/WEB-INF/classes -type d | grep -v "^WebContent/WEB-INF/classes$" | head -10
|
||||
fi
|
||||
|
||||
else
|
||||
echo "Java compilation failed! (Exit code: $COMPILE_EXIT_CODE)"
|
||||
echo "Compilation errors:"
|
||||
if [ -f compile.log ]; then
|
||||
tail -50 compile.log
|
||||
fi
|
||||
|
||||
echo "Attempting compilation with extended classpath..."
|
||||
|
||||
# 이미 설정된 JAVA_HOME 사용하여 확장된 클래스패스 구성
|
||||
EXTENDED_CLASSPATH="$CLASSPATH"
|
||||
|
||||
if [ -n "$JAVA_HOME" ]; then
|
||||
echo "Using JAVA_HOME: $JAVA_HOME"
|
||||
# JDK 7 필수 라이브러리들 추가
|
||||
for lib in "jre/lib/rt.jar" "lib/tools.jar" "jre/lib/jsse.jar" "jre/lib/jce.jar"; do
|
||||
if [ -f "$JAVA_HOME/$lib" ]; then
|
||||
EXTENDED_CLASSPATH="$EXTENDED_CLASSPATH:$JAVA_HOME/$lib"
|
||||
echo "Added: $JAVA_HOME/$lib"
|
||||
fi
|
||||
done
|
||||
else
|
||||
echo "Warning: JAVA_HOME not set, using system default"
|
||||
fi
|
||||
|
||||
# 시스템 클래스패스로 재시도
|
||||
echo "Extended classpath: $EXTENDED_CLASSPATH"
|
||||
RETRY_EXIT_CODE=0
|
||||
javac -cp "$EXTENDED_CLASSPATH" -d WebContent/WEB-INF/classes -encoding UTF-8 -source 1.7 -target 1.7 @java_sources.txt 2>&1 | tee compile_retry.log
|
||||
RETRY_EXIT_CODE=${PIPESTATUS[0]}
|
||||
|
||||
if [ $RETRY_EXIT_CODE -eq 0 ]; then
|
||||
echo "Java compilation successful with extended classpath!"
|
||||
CLASS_COUNT=$(find WebContent/WEB-INF/classes -name "*.class" | wc -l)
|
||||
echo "Successfully compiled $CLASS_COUNT class files"
|
||||
|
||||
# 컴파일된 패키지 구조 표시
|
||||
if [ $CLASS_COUNT -gt 0 ]; then
|
||||
echo "Compiled packages:"
|
||||
find WebContent/WEB-INF/classes -type d | grep -v "^WebContent/WEB-INF/classes$" | head -10
|
||||
fi
|
||||
else
|
||||
echo "Java compilation failed even with extended classpath. (Exit code: $RETRY_EXIT_CODE)"
|
||||
echo "Retry compilation errors:"
|
||||
if [ -f compile_retry.log ]; then
|
||||
tail -50 compile_retry.log
|
||||
fi
|
||||
echo "WARNING: Continuing with deployment anyway. Some features may not work properly."
|
||||
fi
|
||||
fi
|
||||
|
||||
# 임시 파일 정리
|
||||
rm -f java_sources.txt compile.log compile_retry.log
|
||||
|
||||
# XML, properties 등 리소스 파일들을 classes 디렉토리에 복사
|
||||
echo "Copying resource files (XML, properties, etc.) to classes directory..."
|
||||
|
||||
# src 디렉토리에서 Java 파일이 아닌 모든 파일들을 찾아서 복사
|
||||
find src -type f ! -name "*.java" | while read resource_file; do
|
||||
# src/ 부분을 제거하여 상대 경로 생성
|
||||
relative_path=${resource_file#src/}
|
||||
target_dir="WebContent/WEB-INF/classes/$(dirname "$relative_path")"
|
||||
|
||||
# 대상 디렉토리 생성
|
||||
mkdir -p "$target_dir"
|
||||
|
||||
# 파일 복사
|
||||
cp "$resource_file" "WebContent/WEB-INF/classes/$relative_path"
|
||||
echo "Copied: $resource_file -> WebContent/WEB-INF/classes/$relative_path"
|
||||
done
|
||||
|
||||
# 복사된 리소스 파일 수 확인
|
||||
RESOURCE_COUNT=$(find WebContent/WEB-INF/classes -type f ! -name "*.class" | wc -l)
|
||||
echo "Copied $RESOURCE_COUNT resource files (XML, properties, etc.)"
|
||||
else
|
||||
echo "No Java source files found in src directory"
|
||||
|
||||
# Java 파일이 없어도 리소스 파일은 복사
|
||||
echo "Copying resource files (XML, properties, etc.) to classes directory..."
|
||||
find src -type f ! -name "*.java" | while read resource_file; do
|
||||
relative_path=${resource_file#src/}
|
||||
target_dir="WebContent/WEB-INF/classes/$(dirname "$relative_path")"
|
||||
mkdir -p "$target_dir"
|
||||
cp "$resource_file" "WebContent/WEB-INF/classes/$relative_path"
|
||||
echo "Copied: $resource_file -> WebContent/WEB-INF/classes/$relative_path"
|
||||
done
|
||||
|
||||
RESOURCE_COUNT=$(find WebContent/WEB-INF/classes -type f ! -name "*.class" | wc -l)
|
||||
echo "Copied $RESOURCE_COUNT resource files (XML, properties, etc.)"
|
||||
fi
|
||||
else
|
||||
echo "No src directory found - skipping Java compilation and resource copying"
|
||||
fi
|
||||
|
||||
# 컴파일된 클래스 파일 권한 설정 및 최종 확인
|
||||
if [ -d "WebContent/WEB-INF/classes" ]; then
|
||||
chmod -R 644 WebContent/WEB-INF/classes
|
||||
find WebContent/WEB-INF/classes -type d -exec chmod 755 {} \;
|
||||
|
||||
FINAL_CLASS_COUNT=$(find WebContent/WEB-INF/classes -name "*.class" | wc -l)
|
||||
FINAL_RESOURCE_COUNT=$(find WebContent/WEB-INF/classes -type f ! -name "*.class" | wc -l)
|
||||
|
||||
if [ $FINAL_CLASS_COUNT -gt 0 ] || [ $FINAL_RESOURCE_COUNT -gt 0 ]; then
|
||||
echo "✓ Build completed successfully!"
|
||||
echo "✓ Total compiled class files: $FINAL_CLASS_COUNT"
|
||||
echo "✓ Total resource files (XML, properties, etc.): $FINAL_RESOURCE_COUNT"
|
||||
echo "✓ Set appropriate permissions for all files"
|
||||
|
||||
# 클래스 파일 크기 확인
|
||||
CLASSES_SIZE=$(du -sh WebContent/WEB-INF/classes 2>/dev/null | cut -f1)
|
||||
echo "✓ Classes directory size: $CLASSES_SIZE"
|
||||
|
||||
# 주요 리소스 파일 타입 확인
|
||||
if [ $FINAL_RESOURCE_COUNT -gt 0 ]; then
|
||||
echo "✓ Resource file types found:"
|
||||
find WebContent/WEB-INF/classes -type f ! -name "*.class" | sed 's/.*\.//' | sort | uniq -c | head -5
|
||||
fi
|
||||
else
|
||||
echo "⚠ WARNING: No compiled class files or resource files found in WebContent/WEB-INF/classes"
|
||||
echo "⚠ The application may not function properly without compiled Java classes and resources"
|
||||
fi
|
||||
else
|
||||
echo "⚠ WARNING: WebContent/WEB-INF/classes directory not found"
|
||||
fi
|
||||
|
||||
# 컨테이너 상태 확인
|
||||
echo "Checking container status..."
|
||||
docker-compose -f docker-compose.prod.yml up --build --force-recreate -d
|
||||
|
||||
Reference in New Issue
Block a user