2012-11-29 3 views
2

저는 Python으로 프로그래밍하는 데 익숙합니다. 내가 프로젝트를 만들 때마다, 예를 들어, 일반적으로 다양한 스크립트가 유지되는 bin/ 폴더가 :JVM 기반 프로젝트 용 도우미 "스크립트"만들기

  • 이 몇 가지 코드를 생성 ORM
  • 에서 데이터베이스 스키마를 작성 (CSS, 자바 스크립트 등) 다른 일을 기준으로
  • 스크립트는 그래픽 스칼라 (자바)에서 그런 종류의 작업을 수행하는 가장 좋은 방법은 무엇 일부 데이터

을 시각화합니다. 맞춤형 목표는 어쩌면?

나는 sbt 작업이 있지만 응용 프로그램 자체의 컴파일 된 라이브러리를 사용할 수 없다는 것을 읽었습니다.

업데이트 : sbt Task classpath

+2

왜 그럴 수 없습니까? 나는 sbt, Ant/Maven/etc 만 알고 있지만 프로젝트 유물을 모두 사용할 수 있습니다. 또 다른 일반적인 해결책은 배치 또는 셸 파일을 사용하는 것입니다. –

+2

물론 스칼라 구문으로 bash 스크립트를 작성할 수 있습니다.'#!/bin/sh','exec scala "$ 0" "$ @"' ,'! #'그리고 정규 스칼라 문법을 따르십시오. –

+0

@DaveNewton 어떻게하면 maven으로 할 수 있습니까? –

답변

0

내가 사물의 자바 측면에서 빛을 수 있습니다 : 여기 내가 빌드에 대한 응용 프로그램 코드를 사용할 수 없다고 장소입니다. Maven을 사용한다면, Maven이 생성 할 수있는 간단한 프로젝트 아키타 ​​입문서부터 시작하십시오. 그것은 당신을위한 디렉토리 구조를 만들 것입니다 그리고 거기에 물건을 추가 시작할 수 있습니다. 스크립트 용으로 bin 디렉토리가 있으면 문제가 없습니다. 즉, 생성 된 SQL 파일 대신에 관용적 인 Java에서 스키마 작성과 같은 작업을 수행하는 것을 선호합니다. 제 생각에는 장기적이고 안전하고 지속 가능합니다. Hibernate는 예를 들어 주석을 사용하여 최대 절전 모드 세션을 초기화하자마자 DB를 생성하여 스키마를 생성하고 sql 파일을 사용자의 vcs 등에 체크인 할 필요가 없도록합니다. 메이븐 (Maven)은 당신이 원하는 것을 할 수있는 많은 플러그인을 가지고 있습니다. 그래서 선호하는 경로가 될 것입니다. 그렇지 않다면, 당신은 항상 bin 디렉토리에 스크립트 중 하나를 실행시킬 수 있습니다.

예를 들어, 내 API 프로젝트에서 서블릿이 초기화 될 때 Cassandra 키 공간과 열 패밀리를 만들고 업데이트합니다. 이렇게하면 모든 사람이 init 메소드에 변경 사항/업데이트 사항을 추가하면 데이터 저장소가 항상 최신 상태로 유지됩니다. 이것은 모든 저글링을 제거합니다 ... "허튼 소리가 작동하지 않습니다" "... 오, 그건 열 패밀리가 생성되지 않았기 때문입니다 ... 우리의 자식에서 그 파일을 가져 오십시오. 그러나 그렇지 않을 수도 있습니다. CassandraGuy에게 최신 스키마를 내 보낸 다음 cassandra 인스턴스로 가져 오기를 요청하십시오. "이것은 모든 문제를 해결하지 못합니다. 사람들은 여전히 ​​징계를 받아야하며 그들이 어떤 변화를하고 있는지 생각해야합니다. 누군가가 수백만 행이있는 기존 MySQL 테이블의 init에 인덱스를 추가하기로 결정한 경우 init이 인덱스 작성을 완료하는 동안 해당 테이블을 확실히 잠글 것임을 명심하십시오. 이러한 상황은 여전히 ​​코드 검토, 계획 등이 필요합니다.

관련 문제