Quali strumenti di costruzione non dipendono da java (o Ruby)? [chiuso]

3

Mi sto chiedendo quali strumenti generici di build ci siano i loro run-time binari e non dipendono da un altro ambiente non fornito con loro.

Ad esempio, ANT richiede Java, Rake richiede Ruby, ecc.

sarebbe bello se si parlasse anche di strumenti agnostici per target-platform, dove darei qualsiasi comando per la costruzione, qualsiasi comando per i test, ecc. e quindi definirei i miei artefatti in CI o così.

Vedrebbe qualcosa di simile utile per la creazione di progetti .NET (ad esempio, su entrambi i progetti Windows .NET e Mono) e Node JS in particolare. Non voglio installare Java e / o Ruby se quello che voglio è una build .NET o un build JS Node.

Questa è una questione di consapevolezza generale non un problema esatto che sto affrontando, ecco perché non è qui su StackOverflow.

Aggiornamento:

Per spiegare un po 'di più, quello che sto cercando è lo script di build che eseguirà MSBuild per la compilazione, ad esempio (in .NET, e quindi forse diversi comandi Node / NPM in Node, ecc.), e poi avere le altre fasi di build / test, invece di impostarle tutte in MSBuild (di nuovo, anche nel caso .NET, chiedendo se ci sia una storia equivalente nel nodo).

Update2:

Il mio obiettivo è essere in grado di avere uno sviluppatore su una macchina vaniglia per clonare il codice senza installare alcuna dipendenza eccetto la piattaforma che il codice target sia .NET / Mono o Node (nemmeno Java, Ruby o Python) e essere ancora in grado di creare ed eseguire test.

    
posta Meligy 29.11.2012 - 01:17
fonte

6 risposte

2

Non vuoi la piattaforma agnostica tanto quanto lo strumento di creazione nativo per .NET. Per essere precisi dovresti esaminare MSBuild (.NET) e xbuild (mono). Sono funzionalmente equivalenti e inoltre utilizzano gli stessi file di build basati su XML in modo da poter gestire teoricamente sia .NET che mono senza alcuna modifica. Infatti, rake o ANT devono richiamare MSBuild per creare effettivamente qualsiasi roba .NET in modo da utilizzarlo già - il file MSBuild più comune finisce in .csproj.

Noterò che, avendo fatto una quantità enorme di script MSBuild, preferirei davvero gli script di compilazione basati su ruby su script di costruzione basati su XML. Le lingue complete di Turing in XML sono dettagliate.

Sono solo tangenzialmente familiarizzato con node.js, quindi potrei sbagliarmi ma la mia impressione è che non ci sia davvero una build lì - è tutto javascript interperted. Ora, potresti avere uno script per chiamare NPM per caricare i tuoi pacchetti.

Un'altra cosa che potresti voler vedere è psake - è un sistema di build basato su PowerShell basato sul ruby's sake. Ho sentito cose positive anche se non l'ho usato per la rabbia, perché posso fare in modo che MSBuild faccia ciò che mi serve per farlo.

    
risposta data 29.11.2012 - 01:50
fonte
1

Sembra un lavoro per make(1) . È compilato su un eseguibile nativo, quindi non è necessario installare nulla e puoi lanciare qualsiasi altro strumento di compilazione di cui potresti aver bisogno. Se le tue build sono semplici (nessuna complicata gestione delle dipendenze o specifiche di configurazione frammentate) allora non dovrebbe essere troppo difficile impostarle. L'unica cosa più semplice sarebbe avere una coppia di script di compilazione (uno per Windows e uno per Linux) che tu controlli con la fonte.

    
risposta data 29.11.2012 - 21:12
fonte
0

Bene per i progetti .NET in genere si utilizza Team Foundation Server - l'installazione di Build Server sulla piattaforma Windows.

Voglio essere sicuro di aver compreso correttamente le tue domande, ma sarebbe di grande aiuto se anche tu fornissi il tuo O / S di base in fase di sviluppo.

    
risposta data 29.11.2012 - 01:34
fonte
0

Sebbene non sia completamente indipendente, SCons è uno strumento di costruzione basato su Python con cui ho avuto esperienze molto buone. Python è abbastanza comunemente disponibile (più che Ruby?) E gli "script di build" sono semplici file Python che sono molto facili da scrivere e mantenere.

In un ambiente .NET, tuttavia, consiglierei comunque di imparare parte della sintassi di MSBuild, poiché alla fine dovremo usarla per qualche parte del processo. (Teoricamente potresti farne a meno, ma molto pochi. Gli sviluppatori NET non useranno VS, MonoDev, o qualcosa come SharpDevelop, e penso che tutti generino file di progetto MSBuild.)

    
risposta data 29.11.2012 - 06:10
fonte
0

what generic build tools out there include their binary run-times... target-platform-agnostic tools

In alto violerebbe il principio di separazione delle preoccupazioni e in modo evidente.

Pensa alle conseguenze. Tale strumento dovrebbe anche avere una serie di binari per le rispettive piattaforme di destinazione, per tutti loro e per tutti loro.

Ciò significherebbe che oltre a fornire funzionalità dello strumento di costruzione, i suoi sviluppatori dovrebbero anche investire i loro sforzi in binari specifici della piattaforma: progettazione, programmazione, test, manutenzione, nuove funzionalità, correzioni di errori e testarli ancora e ancora e ancora, ancora e ancora.

Ora dedica un minuto a pensare a prospettive a lungo termine per uno strumento del genere. "È un problema competitivo, tutto conta in grandi quantità."

Mentre gli sviluppatori del nostro strumento mostruoso avrebbero difficoltà con glitch e peculiarità specifici di ogni singola piattaforma, più e più volte, i loro concorrenti si divertiranno moltissimo a fornire estensioni, miglioramenti e nuove funzionalità per creare funzionalità , sfruttando il fatto che la piattaforma ingombrante è coperta dal runtime di terze parti sottostante.

    
risposta data 29.11.2012 - 08:46
fonte
0

Dal momento che in particolare hai chiamato Node.js come piattaforma target, presumo che tutti siano installati sulle loro macchine. In tal caso, hai guardato Grunt? Non ho alcuna esperienza reale con esso (l'ho scaricato, ho provato a fare uno script, quindi capito che NPM fa la maggior parte di ciò che mi serviva), ma sembra essere uno strumento di compilazione flessibile scritto su Node.

    
risposta data 29.11.2012 - 20:49
fonte

Leggi altre domande sui tag